Макар — удача дуракам.
Эта глава не дописана
Палиндромом называют фразу, которая читается одинаково как слева направо, так и справа налево. Конечно, при чтении не учитываются знаки препинания.
Приведём несколько примеров, взятых их различных источников:
Некоторые палиндромы, которые встречаются в интернете, столь же хороши, как и неприличны; мы с большой горечью воздержались от их цитирования.
Издаются многочисленные сборники палиндромов, в том числе стихотворных. Укажем некоторые из них: [10], [11], [12], [13], [14], [15]. Тема палиндромов затронута и в книгах [16], [17].
Палиндром, приведённый в эпиграфе главы, получен в результате экспериментов с нашей программой. Мы посвящаем его Макару Иванову, нашему (хорошему) ученику.
Напишем программу palindrome.pl, которая составляет всевозможные палиндромы, состоящие из заданного в командной строки количества слов. Слова берутся из файла, имя которого также задаётся в командной строке.
Сразу скажем, что не все найденные программой палиндромы будут качественными.
В список попадут, во-первых, тривиальные и малоинтересные палиндромы вроде
я я я я я
, оно оно оно
, шабаш
шабаш шабаш
. Будут там и бессодержательные палиндромы, и те,
в которых слова грамматически не согласованы. Меру качества палиндромов крайне
трудно формализовать.
Файл со словами можно скачать здесь. Он включает более полутора миллионов слов и словоформ. Файл большой — [an error occurred while processing this directive]! Слова размещены по одному в строке. Кодировка — UTF-8.
Вместо того, чтобы выкачивать этот файл, вы можете получить подобный файл самостоятельно, запустив команду
%
aspell -d ru-yo dump master |aspell expand |perl -npe 's/ /\n/g' |sort >words-aspell-ru.txt
В результате получите файл со словами words-aspell-ru.txt
.
Необходимо, чтобы в вашей системе была установлена программа проверки
орфографии (спелчекер) Aspell и русский словарь к нему.
Скорее всего это так, если ваша операционная система — Linux
, и она настроена по-русски.