Йеееееееееееееееееееее
ееееееееееееееессссссс
сссссссссссссс!
Дима, вы — МОНСТР. Я уж было приуныл, что никто не отгадает
Задания делаются на компе, само собой.
История компьютерных анаграмм началась еще с АвтоВАЗа (тогда еще просто ВАЗа). Их программер Женя Ефимов в свободное от работы время решил поэкспериментировать не с именами существительными, а с простыми словами, скинул все словари и стал смотреть, что получится. Порой получались забавные сочетания, типа:
АДВОКАТУРА - ДУРАКОВАТА.
Я заинтересовался его наработками и стал его печатать у себя в «Сове». А там уж и сам подоспел со своими анаграммайзерами, лексическими фильтрами, семантическими алгоритмами и прочей лабудой.
Самое сложное в составлении таких заданий — определить размер исходного стиха и передать наследование (наследование — это термин ООП). Дело в том, что реальные поэты часто халтурят с размерами, там ведь фонетическое разбиение, а для компа это пустой звук, нужна математика, методика чтения. И, естественно, нужна огромная база данных и вдобавок к ней мощный вычислительный ресурс.
Сейчас я использую чищенный дамп объемом всего 3 МБ в бинарнике. Чищенный, разумеется, программно, так что косяков там всплывает достаточно. Но визуально их отследить — дело пары минут.
На «союз нерушимый республик свободных» было найдено около 500 приемлемых вариантов с нарушением метра не более 30%. Если поставить планку «качества» ниже или убрать ее вообще, комп может задуматься надолго. Элементарная комбинаторика: в строчке «союз нерушимый республик свободных» 31 символ. Число всех комбинаций равно факториалу 31. Это даже не триллион, это число с 33 нулями (почти с 34-мя). И еще мы не учитываем пробелы, с ними будет уже 10 в 83-й степени! Ну, для полного перебора, конечно.
Грамотное использование базы дает нам скорость, но лишает всех вариантов.
Выборка производится стохастическими методами, в целом время составления приемлемых заданий занимает на 8-ядерном процессоре от 5 до 20 секунд.