Если набить руку, это довольно быстро перестает быть больной темой. Увидеть фрагменты выражения, в которых движок свалится в лишний backtracking, несложно.
Навскидку назову такие способы увеличить производительность:
использовать максимально точные символьные классы
заменить квантификаторы на lazy везде, где не нужна жадность
расставить якоря и границы везде, где их можно расставить
В качестве заключающего штриха еще можно убрать сохраняющие скобки везде, где группу не надо сохранять: мелочь, но тоже помогает производительности.
Классический пример: в регэкспе ".+" достаточно понять, что внутри кавычек нам нужен не любой символ, а любой-кроме-кавычки-символ, чтобы сделать вот так: "[^"]+" и сразу избавиться от ужасного бэктрекинга.
Рекомендую книгу Грега Игана «Дихронавты». Это художественное произведение, но Иган подошел к вопросу основательно и в приложении подробно расписал, почему его вымышленный мир с двумя времениподобными измерениями и двумя пространственными выглядит именно так (не-спойлер: очень странно выглядит).
Впрочем, сам роман можно пропустить, а с физикой мира ознакомиться здесь: https://www.gregegan.net/DICHRONAUTS/DICHRONAUTS.html
Это не только в JS, это во многих языках, потому что унаследовано от C, в котором assignment is expression с самого начала. Но и C не был первым, в Algol 68 оно точно было, и даже в моржовом виде. Возможно, было в каких-то расширениях Fortran, не уверен. С большой натяжкой можно и Lisp упомянуть.
В этом «равномернее» убедиться тоже очень непросто, как и выбрать из разных видов «равномерности».
Например, можно считать ГСЧ очень хорошим, а потом рассмотреть выдаваемые числа как координаты точек в пятимерном пространстве, и окажется, что все точки легли на одну плоскость.
Но придумывать с нуля ничего не надо, есть разнообразные тесты ГСЧ, начиная с хорошо известных Diehard tests.
Напомню недавний сериал Нетфликса на эту тему, «Space Force». Сериал слабенький, не выдающийся, но улыбнуться пару раз меня заставил, а разок даже взоржать в голос.
Вода влияет, еще как влияет. Вода в легких — это очень опасно.
Во-первых, вода смачивает альвеолы, а им смачиваться нельзя, они покрыты сурфактантом, и если его смоет, альвеолы слипнутся и нормально работать не будут.
Во-вторых, вода нарушает электролитный баланс (пресная и морская, соответственно, гипо- и гипертоническая, нарушает его в разные стороны, но медицина говорит, что итоговый эффект для утопленника одинаков, а детали интересны только патологам), что опять же уничтожает сурфактант.
В итоге — ОРДС, либо еще какое повреждение легочной ткани, либо еще и сепсис (если в воде действительно диатомовые водоросли и прочая биота, а она там есть), то есть далее гипоксия, а далее — мементо мори. Ну или просто пациент будет плохо жить.
Поэтому аспирации воды следует по возможности избегать. Если избежать не удалось, и если ситуация выглядит сложнее, чем «пиво не в то горло пошло», то нужно идти к врачу и делать рентген легких.
Процедура нехитрая, мне приходилось делать. Я пришел к терапевту или хирургу, не помню точно, не стал специального врача искать, в обычную районную поликлинику. Так и так, говорю, нахлебался воды из регулятора, аварийно всплывал, чувствую себя отлично, но вдруг вдохнул лишнего, надо проверить. Врач отнесся со всей серьезностью, тут же отправил на рентген. Рентген следует делать не размером с открытку, как для флюорографии, а нормальный такой рентген, в полный рост. Изучив снимок, врач лишней воды не нашел, отправил на свободу. Не знаю, что со мной сделали бы, если б вода нашлась — наверное, кислородом дали подышать или фуросемидом закинуться.
Рекомендую к прочтению короткий забавный рассказ: Эдмунд Криспин, «Замкнутый круг».
Если набить руку, это довольно быстро перестает быть больной темой. Увидеть фрагменты выражения, в которых движок свалится в лишний backtracking, несложно.
Навскидку назову такие способы увеличить производительность:
использовать максимально точные символьные классы
заменить квантификаторы на lazy везде, где не нужна жадность
расставить якоря и границы везде, где их можно расставить
В качестве заключающего штриха еще можно убрать сохраняющие скобки везде, где группу не надо сохранять: мелочь, но тоже помогает производительности.
Классический пример: в регэкспе
".+"достаточно понять, что внутри кавычек нам нужен не любой символ, а любой-кроме-кавычки-символ, чтобы сделать вот так:"[^"]+"и сразу избавиться от ужасного бэктрекинга.Рекомендую книгу Грега Игана «Дихронавты». Это художественное произведение, но Иган подошел к вопросу основательно и в приложении подробно расписал, почему его вымышленный мир с двумя времениподобными измерениями и двумя пространственными выглядит именно так (не-спойлер: очень странно выглядит).
Впрочем, сам роман можно пропустить, а с физикой мира ознакомиться здесь: https://www.gregegan.net/DICHRONAUTS/DICHRONAUTS.html
Ответили они правильно только потому, что подобных задачек полный интернет, и модели учились на тысячах подобных текстов. Стоит изменить текст, и вот:
Не о чем говорить тут. У LLM нет собственной модели мира, они не моделируют и не проигрывают сценарии, они просто складывают буквы в слова.
График курса акций EVOG вы добавили прекрасный, конечно.
Это не только в JS, это во многих языках, потому что унаследовано от C, в котором assignment is expression с самого начала. Но и C не был первым, в Algol 68 оно точно было, и даже в моржовом виде. Возможно, было в каких-то расширениях Fortran, не уверен. С большой натяжкой можно и Lisp упомянуть.
В этом «равномернее» убедиться тоже очень непросто, как и выбрать из разных видов «равномерности».
Например, можно считать ГСЧ очень хорошим, а потом рассмотреть выдаваемые числа как координаты точек в пятимерном пространстве, и окажется, что все точки легли на одну плоскость.
Но придумывать с нуля ничего не надо, есть разнообразные тесты ГСЧ, начиная с хорошо известных Diehard tests.
— У меня с банком договор: я не выдаю кредиты, а банк не торгует семечками.
Извините, не удержался.
Видим же. Реликтовое излучение. Раньше него ничего не видим, потому что тогдашняя плазма была непрозрачна для фотонов (эффект Комптона и еще что-то).
Угу, стейджинга нет.
Неполон ваш образ, вот же:
Неудачная метафора подобна котенку с дверцей.
Напомню недавний сериал Нетфликса на эту тему, «Space Force». Сериал слабенький, не выдающийся, но улыбнуться пару раз меня заставил, а разок даже взоржать в голос.
Да и хрен с ними.
Спасибо за статью.
Для начинающих байесианцев я бы также посоветовал книги Элиезера Юдковского и его знаменитый блог Overcoming Bias.
Уже много лет ставлю себе одну цель и успешно ее достигаю каждый год. Цель — не похудеть.
Скорее Шекли, чем Азимов:
Вода влияет, еще как влияет. Вода в легких — это очень опасно.
Во-первых, вода смачивает альвеолы, а им смачиваться нельзя, они покрыты сурфактантом, и если его смоет, альвеолы слипнутся и нормально работать не будут.
Во-вторых, вода нарушает электролитный баланс (пресная и морская, соответственно, гипо- и гипертоническая, нарушает его в разные стороны, но медицина говорит, что итоговый эффект для утопленника одинаков, а детали интересны только патологам), что опять же уничтожает сурфактант.
В итоге — ОРДС, либо еще какое повреждение легочной ткани, либо еще и сепсис (если в воде действительно диатомовые водоросли и прочая биота, а она там есть), то есть далее гипоксия, а далее — мементо мори. Ну или просто пациент будет плохо жить.
Поэтому аспирации воды следует по возможности избегать. Если избежать не удалось, и если ситуация выглядит сложнее, чем «пиво не в то горло пошло», то нужно идти к врачу и делать рентген легких.
Процедура нехитрая, мне приходилось делать. Я пришел к терапевту или хирургу, не помню точно, не стал специального врача искать, в обычную районную поликлинику. Так и так, говорю, нахлебался воды из регулятора, аварийно всплывал, чувствую себя отлично, но вдруг вдохнул лишнего, надо проверить. Врач отнесся со всей серьезностью, тут же отправил на рентген. Рентген следует делать не размером с открытку, как для флюорографии, а нормальный такой рентген, в полный рост. Изучив снимок, врач лишней воды не нашел, отправил на свободу. Не знаю, что со мной сделали бы, если б вода нашлась — наверное, кислородом дали подышать или фуросемидом закинуться.
Когда дело доходит до настоящих котлет, все становится ещё хуже.
Ну, русинских языков несколько разных, и как раз в фонетике много отличий.
Формально там только две гласных переднего ряда верхнего подъема, но если постараться, то можно и все четыре насчитать.