Что вы получите, если скрестите загадку с программистом?
Вы получите то, чего заслуживаете!

(нужно оставить PG-13 bois…)

Акт -1: Головоломка

О, ты знаешь загадку. ВСЕ ЗНАЮТ ЗАГАДКУ.

вы гадаете, гадаете и гадаете... и с каждым предположением вы видите, что доверие к вам как к носителю английского языка уменьшается (если вы не можете угадать его менее чем за пять попыток, тогда вы можете проявить свои языковые способности)

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



Акт -2: Проблема

Коротко и просто: Какой самый эффективный способ угадать слово из пяти букв

Если наш словарный запас/словарь/корпус состоит из N слов, за какое наименьшее количество попыток вы сможете угадать слово?

Для совершенно случайного предположения в худшем случае потребуется N попыток. Этот подход «грубой силы» является допустимым решением, но это не то, что нужно праздновать.

Случайное угадывание также не очень интуитивно понятно! Когда вы делаете предположение, вы получаете много «информации» из игры.

Ни один здравомыслящий человек, играющий на победу, никогда не угадает слово, содержащее Р, В, Е, С, У и Л!

Зачем тогда компьютеру?

Я: «Ни один здравомыслящий человек не стал бы что-то делать»
Также я: **продолжаю делать то же самое**

Можем ли мы каким-либо образом использовать эту информацию и аргументировать свои действия процедурно?

Действие 3: количественная оценка информации

Ключ к решению этой игры состоит в том, чтобы не сосредотачиваться на угадывании слов. Это максимизация информации, которую мы можем извлечь из каждого предположения. Мы надеемся, что чем больше мы узнаем об ответе, тем меньше становится наш набор предположений (поскольку мы можем отбросить слова, которые не соответствуют полученной нами информации).

Максимизируйте информацию, извлекаемую из каждого предположения

Итак, как мы можем количественно оценить информацию?

Если вы согласны просто поверить мне на слово, вот формула для расчета информации:

Интересно отметить, что математика, стоящая за этим, исходит из физического понятия под названием «Энтропия». Я слишком ленив (и я ужасный учитель), поэтому я просто дам ссылку на хороший ресурс, чтобы узнать об этом.

Так что да…

Что мы ищем, так это вычислить энтропию/информацию каждого слова. Точнее, алфавиты в словах.

Акт 4: Информация

Вскоре после того, как я начал работать над проблемой, я заметил, что мой любимый канал на YouTube, 3Blue1Bronwn, сделал видео, объясняющее их подход к этой проблеме.

Мой подход похож, но пара предположений отличается.

Ниже приведены предположения моей модели:

  • Все слова из 5 букв с одинаковой вероятностью будут выбраны в игре. (Набор из 15 000+ слов).
  • Информация слова представляет собой сумму информации каждого алфавита
  • Вероятностная мера, используемая для измерения информации об алфавите, — это вероятность того, что алфавит встречается в определенной позиции!

Поэтому, например:
Вероятность того, что буква «С» появится на первой позиции, равна

Таким образом, информация, полученная путем угадывания C, в первую очередь:

Наконец, общая информация, содержащаяся в слове, например: «C R A N E», составляет:

И на этом, друзья, все!

Акт -5: Вплоть до… Код

Это не весело, если вы не «ВИДЕТЕ», что эта идея работает!

Итак, без лишних слов, позвольте мне показать результаты кода

Хорошо, я знаю, что это не самый красивый результат. Но это была первая итерация

Вот кодовая база! ударил меня, если у вас есть какие-либо предложения!



Акт 5: заключительное примечание

Это была забавная задача, и, к счастью, кодирование тоже не заняло целую вечность. Не самый лучший, но с учетом учебной нагрузки я доволен результатами; на данный момент.

Хотя видеть, как ваш бот побеждает в словесной игре, очень приятно, это испытание напомнило мне, почему я так люблю науку и математику! Решение простой игры слов, основанное на термодинамике и математике, просто обобщило проблему.

Вдохновение можно найти даже в самые темные времена, если только не забыть включить свет.

Последние мысли:

Как вы думаете, кто выиграет раунд wordle?

Математик Перри или Лингвист Стив?