В Wordle стандартной тактикой считается использование слов с высокой концентрацией популярных букв. Однако глубокий анализ подтверждает: неочевидные на первый взгляд варианты порой приносят гораздо больше пользы. Возникает резонный вопрос: можно ли математически обосновать превосходство одного стартового слова над другим? Ответ однозначен — да. В рамках данного исследования я подошел к Wordle как к классической задаче из области теории информации, рассчитав ценность каждого действия с помощью Excel и оригинальных словарей игры. Этими выводами я делюсь в блоге ЛАНИТ, чтобы обсудить результаты с профессиональным сообществом.

Суть Wordle и скрытая глубина игровой механики
Игроку необходимо за шесть попыток вычислить скрытое пятибуквенное слово. Обратная связь дается через цветовую индикацию: зеленый сигнализирует о точном попадании в позицию, желтый — о наличии буквы в другом месте, серый — об отсутствии символа в загадке.

Каждая попытка порождает множество вариантов отклика, по-разному сужая пространство поиска. Именно поэтому Wordle — это не просто лингвистическая забава, а полноценная аналитическая задача, где каждый ход интерпретируется как информационный запрос.
Традиционные стратегии и их логическое обоснование
Обычно пользователи выбирают слова с максимальным набором уникальных и часто встречающихся букв. На базе русского языка эталонным вариантом часто называют слово «осина».

В дискуссиях вокруг оптимальных алгоритмов часто упоминаются слова «камин» или экзотичный «кроат».

Однако частотный метод игнорирует позиционирование букв и структуру распределения ответов по паттернам. Чтобы выйти за рамки интуиции, необходимо применить формальный критерий оценки — энтропию. Но прежде всего требуется определить релевантную базу слов.
Архитектура словарей: от теории к практике
Использование случайных списков слов из интернета вносит погрешность в расчеты. Для точности анализа я взял данные непосредственно с ресурса wordly.org через инструменты разработчика (F12).

Выяснилось, что игра оперирует двумя перечнями:
-
dictionary (Allowed) — список допустимых для ввода слов (более 4000 единиц);
-
targets (Answers) — пул слов, которые могут быть загаданы (около 600).
Для загрузки и очистки этих данных я применил Power Query. Вот фрагмент кода для импорта целевых слов:
let
Url = "https://wordly.org/files/wordle/ru/targets.json",
Raw = Web.Contents(Url),
Json = Json.Document(Raw),
WordsList = if Value.Is(Json, type list) then Json else error "Ошибка структуры",
Tbl = Table.FromList(WordsList, Splitter.SplitByNothing(), {"Word"}),
Lower = Table.TransformColumns(Tbl, {{"Word", Text.Lower, type text}}),
Len5 = Table.SelectRows(Lower, each Text.Length([Word]) = 5),
Sorted = Table.Sort(Len5,{{"Word", Order.Ascending}}),
Distinct = Table.Distinct(Sorted)
in
Distinct

Роль энтропии в оценке информативности
Математически каждый шаг в Wordle — это получение паттерна обратной связи (B/Y/G). Именно этот цветовой код несет информацию, отсекающую невозможные варианты.
Эффективный ход максимально дробит множество потенциальных ответов на мелкие группы. Чем равномернее это распределение, тем выше неопределенность, которую мы снимаем одним действием. В теории информации для измерения этого эффекта используется энтропия Шеннона.
Для каждого слова мы анализируем все теоретически возможные паттерны отклика и считаем количество слов, попадающих в каждую категорию. Энтропия этого распределения покажет, сколько бит информации мы извлекаем в среднем за один ход.

Заметьте: слово «норка» генерирует более широкое и пологое распределение паттернов по сравнению с конкурентами, что делает его крайне информативным.
Формула энтропии:
В контексте нашей игры pi — это вероятность получения конкретного цветового паттерна. Чем выше итоговый показатель H, тем лучше слово справляется с задачей сужения круга поиска.
Математическая реализация в Excel
Для автоматизации расчетов были созданы специализированные LAMBDA-функции (доступны в Excel-файле).
W_PATTERN
Функция, воссоздающая логику Wordle: сравнивает попытку с целью и возвращает строку типа «GYB», учитывая правила повтора букв.
=LAMBDA(guess;target;
LET(
g; ПСТР(guess;ПОСЛЕД(5);1);
t; ПСТР(target;ПОСЛЕД(5);1);
gr; g=t;
rem0; ОБЪЕДИНИТЬ("";ИСТИНА; ФИЛЬТР(t; НЕ(gr);""));
state; REDUCE(ГСТОЛБИК(""; rem0); ПОСЛЕД(5); LAMBDA(a;i;
LET(pat; ИНДЕКС(a;1;1); rem; ИНДЕКС(a;1;2); ch; ИНДЕКС(g;i);
ЕСЛИ(ИНДЕКС(gr;i); ГСТОЛБИК(pat & "G"; rem);
LET(pos; ЕСЛИОШИБКА(НАЙТИ(ch;rem);0);
ЕСЛИ(pos>0; ГСТОЛБИК(pat & "Y"; ЗАМЕНИТЬ(rem;pos;1;"")); ГСТОЛБИК(pat & "B"; rem)))))));
ИНДЕКС(state;1)))
ENTROPY_W
Основной вычислитель энтропии для любого слова относительно текущего множества кандидатов.
=LAMBDA(guess; Universe;
LET(
codes; MAP(Universe; LAMBDA(w; W_PATTERN(guess; w)));
u; УНИК(codes);
cnt; MAP(u; LAMBDA(pat; СУММ(--(codes=pat))));
p; cnt / ЧСТРОК(Universe);
-СУММ(p * LOG(p; 2))))
В поисках идеального старта: триумф слова «норка»
Почему «кроат» считался фаворитом? Он лидирует по частотности букв среди пятибуквенных слов без повторов символов.

При исходной неопределенности в 9,23 бит (log2 от 602 возможных ответов) качественный первый ход должен забирать более 5,5 бит.

«Норка» обеспечивает 5,69 бит информации, оставляя после себя лишь 3,54 бит неопределенности. Это статистически лучший выбор для минимизации количества ходов до победы.
Интересно сравнить этот результат с методом минимакса, где целью является минимизация максимально возможного остатка слов в худшем случае. Оба подхода указывают на схожие оптимальные варианты.

Динамическая стратегия: второй ход и далее
Использование фиксированного набора слов для «пробивки» букв неэффективно, если ваша цель — угадать слово за 3-4 попытки. Оптимальный второй ход должен выбираться адаптивно, исходя из результата первого.

Анализ вторых ходов показал любопытную деталь: зачастую наиболее информативное слово для второй попытки в принципе не может быть ответом (не входит в пул целевых слов). Математика диктует приносить возможность мгновенной победы в жертву максимальной определенности.

Применяя данные принципы, мне удалось достичь следующей статистики результативности:

Развитие темы
Для тех, кто хочет применить этот метод к другим версиям игры, например от Т-Банка, доступен их список разрешенных слов по ссылке.
Жду ваших мнений и альтернативных предложений по оптимизации стратегий в комментариях!

