Comments 10
Интересная задача. Я тоже когда подсел на Словодел, захотел найти комбинацию слов без повторения букв. Но я решил не все буквы проверять, а только самые часто употребляемые. Я придумал 2 слова: икона, супер. Никаких нейросетей или программирования, только ковыряние в носу.
Это стандартная задача на поиск в глубину, таких много на литкоде. Самый простой (и медленный) вариант на питоне:
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 отношения не имеет. Исходный набор слов можно ещё сократить если убрать анаграммы. Может имеет смысл попробовать с шестью словами, или пятью шестибуквенными, есть шанс что найдутся решения, возможно даже окажется одно уникальное.
Гугление не дало результата. Удалось найти похожую на тему по английским словам на Reddit, но русскоязычных статей не нашёл. Это одна из причин почему написана эта.
тема очень старая и много где обсуждалась, на Хабре есть статья и где-то еще была, там даже я ответы писал, типа слова "КОРАН" как основа.
Вы не первый до этой задачи додумались. Поп-математик Мэт Паркер уже популяризировал эту тему. И там это тоже пошло с wordle. Вот видео с его решением. Но он не программист, так что ему в комметариях накидали и ускорили решение в сотни миллионов раз. Так что вот второе видео от него c обзором чужих решений. (Мама, я в телевизоре!)
Решения через динамическое программирование с использованием битовых масок в интернете заоптимизировали так, что бутылочным горлышком становится ввод/вывод, и для словаря со всеми английскими словами оно работает за миллисекунды.
5 слов из 5 букв