"Начинку" робота составляли главный компьютер и 50 управляемых им микрокомпьютеров, ведающих всеми суставами и пальцами. Но ведь любой компьютер - и микроминиатюрный, занимающий всего один кристалл, и гигантский, размещаемый в большом зале, - оперирует только с двоичными цифрами. Значит, и интеллектуальные роботы (а среди них и шахматисты, и штангисты, и няньки для детей, и даже актеры) "предпочитают" пользоваться двоичными цифрами.
Но, что самое удивительное, робот-музыкант, "зная" только цифры 0 и 1, способен читать нотную запись, понимать человеческую речь и отвечать осмысленными фразами. Как все это происходит? Какими "магическими" свойствами обладают цифры 0 и 1, позволяющие выразить и нотную запись, и человеческую речь, и звуки бессмертной музыки? Об этом и пойдет речь в следующих главах.
Искусство шифрования
Варкалось. Хливкие шорьки
Пырялись по наве.
И хрюкотали зелюки.
Как мюмзики в мове.
Л. Kэролл
Это строки стихотворения "Бармаглот" из знакомой всем веселой детской книжки "Алиса в Зазеркалье". Если предложить разным людям "распознать", какую конкретную информацию несут в себе эти строки, то вариантов будет столько, сколько и людей, пытающихся их расшифровать. В них не заложено никакого смысла! Это знаменитые "Джабберуокки" (что-то вроде бессмыслицы) — математика и логика Льюиса Кэрролла.
А вот такая фраза:
аеефикцыге рмчии,
на первый взгляд кажется еще более бессмысленной, чем "Джабберуокки". Однако она как раз содержит в себе вполне определенную информацию. В этой записи мы зашифровали название первой части нашей книги "Магические цифры" путем перестановки в нем букв.
Правило перестановки может быть, конечно, любым. Однако, чтобы прочесть исходный текст, нужно сделать правило легко запоминаемым. Мы осуществили перестановку следующим образом. Сначала записали шифруемый текст в квадратную таблицу под ключевым словом "шифр":
Затем пронумеровали столбцы в соответствии с очередностью появления букв слова "шифр" в алфавите (например, буква "и" идет по алфавиту раньше буквы "р" и остальных букв слова "шифр", поэтому второму столбцу присвоен номер 1, четвертому — номер 2 и т. д.). И наконец, переписали буквы всех столбцов в соответствии с присвоенными номерами,т. е. сначала буквы столбца под номером 1, затем под номером 2 и т. д. Читатели из интереса могут придумать какой-нибудь другой способ шифровки.
Способы буквенного шифрования текстов (или еще говорят "кодирования") известны очень давно. Так, знаменитый в истории римский диктатор Гай Юлий Цезарь для тайной переписки со своими сторонниками среди римских политиков применял такой способ кодирования: сдвигал весь алфавит на определенное число букв влево или вправо. Если каждую букву текста "Магические цифры" заменить предшествующей буквой алфавита (при этом букве "а" предшествует буква "я"), то получится фраза
лявзцдризд хзупъ,
зашифрованная кодом Цезаря.
Однако чаще всего буквенные тексты шифруют с помощью цифр, т. е. цифровым кодом, что, возможно, связано со стремлением сделать сообщение недоступным для тех, кому оно не предназначено. Вот пример цифрового кодирования текста.
Попробуйте расшифровать следующую запись:
301 033 020 016 052 402 163 502 230 403.
Вы, наверное, уже догадались, что приведенным набором цифр представлена все та же фраза "Магические цифры". Цифровой ее код получен так. Буквы русского алфавита были расположены в прямоугольной таблице 4x8 произвольным образом:
Затем каждая буква была заменена двумя цифрами: соответствующими номерами строки и столбца. Группирование же цифр по три в шифрованной записи было сделано лишь для того, чтобы сбить с толку дешифровальщика, т. е. вас, читатель.
На первый раз, думаем, это удалось.
В приведенном примере алфавит из 32 символов (букв) был заменен алфавитом из десяти символов (цифр). Такое положение справедливо и в общем случае: любой алфавит, состоящий из конечного числа каких-либо символов, можно заменить алфавитом из других символов, причем новых символов может быть существенно меньше.
По-видимому, одним из первых, кто понял это, был Фрэнсис Бэкон — лорд-канцлер Англии, барон Веруламский и виконт Сент-Обланский.