Search
Write a publication
Pull to refresh

Comments 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 отношения не имеет. Исходный набор слов можно ещё сократить если убрать анаграммы. Может имеет смысл попробовать с шестью словами, или пятью шестибуквенными, есть шанс что найдутся решения, возможно даже окажется одно уникальное.

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

  1. Гугление не дало результата. Удалось найти похожую на тему по английским словам на Reddit, но русскоязычных статей не нашёл. Это одна из причин почему написана эта.

тема очень старая и много где обсуждалась, на Хабре есть статья и где-то еще была, там даже я ответы писал, типа слова "КОРАН" как основа.

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

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

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

Sign up to leave a comment.

Articles