
Условие этой логической задачи просто: как записать на зубочистке целую летопись? Разумеется, первое, что приходит на ум, — гигамикроскопический шрифт, которым она и будет записана. Ан нет! Тут другой подход.
Решение таково. Для начала закодируем наш текст простейшим способом — поставим каждой букве в соответствие цифру, являющуюся ее номером в алфавите, вот так: а=1, б=2, в=3 и т.д. Чтобы избежать помех, будем кодировать каждую букву диадой — 01, 06, 13, 32 и т.п. Код 00 не используем. Не забудем определить код и для пробела, а также знаков препинания. В результате этого преобразования мы получили длинную-длинную цифру.
Добавим в начале ноль и запятую. Теперь это непериодическая десятичная дробь.
Дробь, как известно каждому, обозначает какую-то часть целого. Примем длину зубочистки за единицу. Отсчитаем от одного из ее концов ту часть, которую обозначает наша дробь, и поставим штрих. Так, если имеем дробь 0,50000..., то поставим штрих ровно посередине; а если, к примеру, 0,333333... — то отсчитаем от того конца зубочистки, который приняли за начало отсчёта, ровно треть.
Вот, собственно, и все. Летопись записана на зубочистке. Чтобы прочесть текст, нужно снять зафиксированное значение дроби и раскодировать текст. Теперь хорошо видно, зачем понадобилось кодировать буквы диадами — так у нас буквы «а» и «в» (1 и 3 соответственно) никогда не сольются в «л» (13).
Отметим, что эта задача носит сугубо теоретический характер, по крайней мере на данном уровне технического развития. Дело в том, что при считывании значения дроби требуется высочайшая точность — а ее соблюсти очень и очень трудно. Если считывающее устройство ошибется хоть на немного, будет искажено число и, как следствие, текст.
Эта задача описана в одной из книг Харуки Мураками.