Математика против хаоса: как Rust и C++ помогают считать вероятности в «Ужасе Аркхэма»

08 марта 2026

danceandfight написал 13 дней назад: # скрыть ответы

Привет, спасибо за статью!

А можно пример сложного варианта, где js не вывозил уже? И не могли ли каким-то образом помочь округления и менее точные методы расчета, а то кажется, что 13% вероятность для большинства людей не сильно отличается от, скажем, 9 или 17%)

neizerth написал 13 дней назад: # скрыть ответы

Я упёрся в этот потолок на мешке из 10 bless + 10 curse. Там уже если закинуть сценарные жетоны с доктором и, в теории морозы из Края, окончания процесса можно не ждать

Это был тупой перебор без DFS (поиск в глубину) и оптимизация бы и на JS, уверен, что-то бы дала

Ещё одна задачей была поддержка фанатских кампаний. Есть как граничный случай сценарий Strange Moons из фанатского Dark Matter, там скрижаль приводит к добру двух жетонов вместо одного. И в этот момент даже DFS без оптимизации взрывался

В общем, я решил не мелочить, учитывая что у приложения есть пользователи древнего Android 7 и сделать максимально возможные улучшения :)

neizerth написал 13 дней назад: #

Не с доктором, а с добором:)

neizerth написал 13 дней назад: #

Я пробовал также вариант неточных вычислений через метод Монте-Карло

Но он давал сильный разброс в результатах (около разницы в 10-20%). Для примерной точности ему желательно 10к выборок
Я попробовал и получилось медленнее по работе, чем полный обход :(

Пробовал также BFS (поиск в ширину), но он был медленнее. В общем, у меня с этими вероятности получится полноценный НИОКР ради 5 чисел)