Криптографические приключения. Таинственные шифры и математические задачи. Р. В. Душкин
Чтение книги онлайн.
Читать онлайн книгу Криптографические приключения. Таинственные шифры и математические задачи - Р. В. Душкин страница 17
Из дневника Кирилла:
11 июня. Ночью мне приснился сон, в котором я не мог решить задачу и мучился. Задача состояла в том, чтобы уравновесить весы при помощи металлических шариков. Но все шарики имели различный вес: я не смог найти и двух одинаковых среди всей россыпи. И вот я подбирал шарики, но весы так и не уравновешивались. Я проснулся с чувством, что не доделал какое-то важное дело, про которое никак не мог вспомнить.
Из-за странного сна, который буквально опустошил меня, я не мог сосредоточиться всё утро. Папа рассказывал, что он часто решает сложные задачи при помощи этого метода: перед засыпанием загружает свой мозг размышлениями о задаче, а наутро решение находится само собой. Будто бы так работает русская поговорка «утро вечера мудренее». Но у меня, похоже, ничего не вышло. Наоборот, выспаться не удалось, голова гудела, было как-то не по себе.
После завтрака приехала Катя, и я рассказал ей свой сон. Она задумалась, а потом спросила, почему я не смог решить эту задачу. Надо было на одну чашу весов класть самые тяжёлые шарики, а на другую самые лёгкие. Лёгких потребовалось бы намного больше, но в какой-нибудь момент всё бы сошлось. К этому времени в голове у меня чуть-чуть прояснилось, и я только посмеялся над её предложением. Вполне могло быть так, что остался бы последний шарик, который перевешивал то одну чашу весов, то другую (именно это меня и мучило во сне).
Катя задумалась, потом достала свой блокнот и начала его листать. Мой взгляд упал на систему кодирования символов для телеграфа. Я вгляделся в таблицу. В памяти начали всплывать образы наведённых воспоминаний – такую же таблицу мы рисовали с Марком, когда делали шифровальную машину. А потом я придумал, как при помощи пяти монет генерировать случайные пятибитные числа.
У меня произошло что-то вроде лёгкого головокружения, и головоломка внезапно сошлась. Деление пополам при помощи бросания монеты, дерево переходов, двоичные числа и биты, и, наконец, частоты символов – всё это соединилось в идее, которая засияла у меня в голове. Я даже зажмурился от нахлынувшего потока ощущений. Мне казалось, что мысли и идеи обрели форму и заворочались у меня в голове, царапая мозг.
Я взял блокнот и выписал в порядке уменьшения частоты встречаемости все символы русского алфавита, начиная с пробела. Затем я разделил полученный ряд на две части, чтобы в каждой из них сумма частот равнялась примерно 50 %. Точно разделить не получилось, получилось вот так:
После этого я нарисовал первый уровень дерева выбора. Левая ветвь обозначала те символы, которые лежат слева от разделительной черты, а правая, соответственно, правые. Левую ветвь я обозначил символом «0», а правую – символом «1».
Затем каждую половину символов я разделил ещё на две части так, чтобы сумма частот каждой равнялась примерно 25 %. Сделать это точно