Программист вычислил математически оптимальное слово для первой попытки в Wordle

Тайлер Глэйел рассказал об этом на Medium.

Программист вычислил математически оптимальное слово для первой попытки в Wordle

Краткий пересказ статьи:

Мистер Глэйел поигрывал в Wordle на досуге и решил сломать систему, придумать, как быстро и эффективно выигрывать. Для начала он нашёл в коде игры два списка: 2315 возможных ответов и 12972 слов, которые игра может принять в качестве попытки. Он приблизительно прикинул, сколько времени займёт поиск, перемножив эти числа, затем ещё умножил на 2, столько же времени затрачивается на оценку каждой попытки. Получилось 60 миллиардов, он сравнил их с производительностью своего процессора и увидел, что всё возможно.

Дальше Тайлер написал бота. Тот сравнивал каждую возможную попытку с каждым возможным ответом, засчитывая 2 балла за зелёный квадратик, 1 за жёлтый и 0 за серый. Система оказалась жизнеспособной и в среднем находила правильный ответ за 3.69017 попыток. Но! Боту не всегда удавалось выиграть за 6 попыток, в худшем случае он тратил 8. Первое слово, которое он использовал, было SOARE (достаточно редкое слово, означает «молодой ястреб».
Тогда программист пошёл другим путём. Новый, написанный за пару часов бот, подсчитывал, сколько возможных ответов остаётся после в среднем после попытки (чем меньше, тем лучше). Новый бот справился лучше. Он находил решение за 3.49417 попыток в среднем и за 5 в самом худшем случае. Здесь идеальное первое слово было ROATE. Большинство словарей его тоже не знают, что-то из языка налоговиков.

На заглавной картинке пример работы новой схемы.

Пытливый ум его на этом не остановился. Ведь Roate не входит в список ответов. Попытаться угадать с шансом 1 из 2315 можно со словом Raise. Оно в этом случае оптимально.

Сегодня я попробовал сделать Roate первым – и впал в ступор на несколько минут. Что хорошо боту, то человеку смерть.

Дорогие программисты, можете посчитать такое же, но для русского Wordle?

Начать дискуссию