Обновить

Комментарии 10

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

Да, я так тоже придумал себе три слова "право", "зенит", "кумыс" и потом ещё 4, указанных в статье. А потом стало интересно, где же предел. И вот уже 4млн групп.

Я начинаю с «аудио» чтоб проверить максимум гласных

Это стандартная задача на поиск в глубину, таких много на литкоде. Самый простой (и медленный) вариант на питоне:

from sys import setrecursionlimit
from textwrap import wrap

setrecursionlimit(100000)

words = open('words.txt').read().split()
def no_repeats(word): return len(set(word)) == len(word)
words = [word for word in words if len(word) == 5 and no_repeats(word)]

def dfs(result, index):
    if len(result) >= 25: 
        print(wrap(result, 5))
        return
    if index >= len(words):
        return
    if no_repeats(result+words[index]):
        dfs(result+words[index], index+1)
    dfs(result, index+1)

dfs("", 0)

Я тоже решал эту задачу, но без ИИ. Что-то мне лень было промпты составлять, интереснее было самому написать.

В итоге вот такие наборы получились
['БОДЯК', 'ВЗМАХ', 'ГНУСЬ', 'ПРИЧТ', 'ШЛЕЙФ'],
['ВЗДОХ', 'ГБАЙТ', 'МЯКИШ', 'ПУЛЬС', 'ФРЕНЧ'],
['ГНЕЙС', 'ДИЧОК', 'ЗУМПФ', 'ХЛЯБЬ', 'ШВАРТ'],
['ЗУМПФ', 'КОРЧА', 'СДВИГ', 'ХЛЯБЬ', 'ШТЕЙН'],
['ЗУМПФ', 'РАЧОК', 'СДВИГ', 'ХЛЯБЬ', 'ШТЕЙН'],
['ЗУМПФ', 'РОГАЧ', 'СКВИД', 'ХЛЯБЬ', 'ШТЕЙН'],

Но в итоге пользуюсь четырехсловными наборами. Так у меня остается 2 попытки чтобы угадать слово.

Задачка выглядит интересной, но она чисто алгоритмическая, к ML отношения не имеет. Исходный набор слов можно ещё сократить если убрать анаграммы. Может имеет смысл попробовать с шестью словами, или пятью шестибуквенными, есть шанс что найдутся решения, возможно даже окажется одно уникальное.

Если решать задачу целиком, с условием про распространённые существительные и т.д., то алгоритмом вряд ли это решишь. Если только предварительно не взять словарь таких существительных.

НЛО прилетело и опубликовало эту надпись здесь

Хорошая статья, спасибо за ссылку!

Вы не первый до этой задачи додумались. Поп-математик Мэт Паркер уже популяризировал эту тему. И там это тоже пошло с wordle. Вот видео с его решением. Но он не программист, так что ему в комметариях накидали и ускорили решение в сотни миллионов раз. Так что вот второе видео от него c обзором чужих решений. (Мама, я в телевизоре!)

Решения через динамическое программирование с использованием битовых масок в интернете заоптимизировали так, что бутылочным горлышком становится ввод/вывод, и для словаря со всеми английскими словами оно работает за миллисекунды.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации