сейфом из Монте-Карло.
— Надеюсь, вы понимаете, что наш разговор сугубо конфиденциальный, — заключил свой рассказ Крейг. — А теперь, Мак-Каллох, если ты дашь мне число, которое порождает само себя, то я сразу же смогу назвать комбинацию, которая откроет замок сейфа.
Итак, читателю предлагаются три задачи.
1) Какое число X порождает само себя в последней машине?
2) Какая комбинация открывает замок сейфа?
3) Как связаны между собой первые два вопроса?
Рано утром следующего дня Крейг, подыскав надежного человека, отправил в Монте-Карло пакет, адресованный Мартинесу, в котором была записана найденная им накануне кодовая комбинация. Курьер прибыл вовремя, и сейф был благополучно открыт.
Как и обещал Мартинес, совет директоров банка прислал Крейгу солидное денежное вознаграждение. Крейг настоял на том, чтобы разделить эти деньги с Мак-Каллохом и Фергюссоном. Свой успех трое друзей решили отпраздновать, заказав шикарный ужин в ресторане «У льва».
— А знаете, — сказал Крейг, отведав превосходного хереса. — Пожалуй, это было одно из самых интересных дел в моей практике. Подумать только, числовые машины, созданные из чисто интеллектуального любопытства, и вдруг оказывают такую неоценимую помощь на практике!
Решения
Сначала еще несколько слов о загадке сейфа из Монте-Карло. В последнем условии Фаркуса не говорится, что требуемая комбинация у непременно должна отличаться от комбинации х. Поэтому если предположить, что х и у представляют собой одну и ту же комбинацию, то указанное условие можно будет прочитать так: «Пусть комбинация х родственна по отношению к комбинации х, тогда если комбинация х блокирует замок, то комбинация х будет нейтральной; если же комбинация х оказывается нейтральной, то комбинация х блокирует замок». Однако невозможно, чтобы комбинация х одновременно была нейтральной и блокировала замок. Следовательно, если комбинация х родственна но отношению к х, тогда эта комбинация не может ни оказаться нейтральной, ни блокировать замок. А значит, она должна этот замок открывать! Таким образом, если мы сумеем найти комбинацию х, которая родственна самой себе, то такая комбинация х обязательно откроет нам замок.
Конечно, Крейг понял это еще задолго до того, как вернулся в Лондон. Но как найти комбинацию х, которая родственна самой себе? Именно на этот вопрос Крейг и не мог ответить до тех пор, пока судьба не столкнула его с третьей машиной Мак-Каллоха.
Оказывается, задача нахождения комбинации, которая, согласно условию Фаркуса, является родственной самой себе, по своей сути тождественна задаче нахождения числа, которое порождает само себя в последней машине Мак-Каллоха. Единственное существенное отличие заключается в том, что кодовые комбинации для замка — это цепочки букв, тогда как числовые машины работают с цепочками цифр. Однако первую задачу можно легко преобразовать ко второй, и наоборот, следующим простым приемом.
Во-первых, мы рассматриваем лишь комбинации из букв Q, L, V, J? (совершенно очевидно, что только эти буквы играют в задаче существенную роль). Предположим теперь, что вместо этих букв мы будем использовать собственно цифры 2, 6, 4, 5 (то есть 2 вместо Q, 6 вместо L, 4 вместо V и 5 вместо R). Для удобства запишем это так:
Q L V R
2 6 4 5
Теперь посмотрим, какой вид примут первые четыре условия Фаркуса, если мы запишем их не в буквах, а в цифрах.
(1). Для любого числа Х число 2X2 является родственным числу X.
(2). Если число X родственно числу Y, то число 6Х оказывается родственным числу 2 У.
(3). Если число X родственно числу У, то число 4Х родственно числу Т.
(4). Если число X родственно числу У, то число 5Х родственно числу УУ.
Сразу видно, что это — точно те же правила, которым подчиняется последняя машина Мак-Каллоха, с той лишь разницей, что вместо слова «порождает» используется слово «родственно». (Конечно, я мог бы воспользоваться словом «порождает» и в гл. 8, где речь шла об условиях Фаркуса, но тогда читателю было бы слишком уж легко обо всем догадаться!)
Позвольте мне сказать это еще раз и поточнее. Для любой комбинации х, состоящей из букв Q, L, V, R, мы будем обозначать через х число, которое получается при замене Q на цифру 2, L на цифру 6, V на цифру 4 и R на цифру 5. Например, если это комбинация вида VQRLQ, то х — число 42562. При этом мы будем называть число х кодовым номером комбинации х. (Кстати, идея приписывания логическим высказываниям специальных чисел — так называемых «гёделевых номеров» — принадлежит известному логику Курту Гёделю и известна под названием гёделевой нумерации. Она очень важна, как мы увидим в IV части нашей книги.)
Значит, мы можем окончательно сформулировать главную мысль последнего абзаца в таком виде: для любых комбинаций х и у, составленных из четырех букв Q, L, V, R, если, исходя из правил MI, MII, MIII и MIV, используемых в последней машине Мак-Каллоха, можно показать, что число х порождает число у, то тогда, исходя из первых четырех условий Фаркуса, можно показать и то, что комбинация х является родственной по отношению к комбинации у, и наоборот
Таким образом, если мы находим число, которое юлжно порождать само себя в последней числовой машине Мак-Каллоха, то это число должно оказаться кодовым номером некой комбинации, родственной самой себе, причем эта комбинация будет открывать замок.
Но как же нам найти такое число N, которое, порождало бы само себя в нашей последней машине? Прежде всего будем искать некоторое число Н, такое, чтобы для любых чисел X и У, если число X порождает число У, число НХ порождало бы число Y2Y2. Если мы сумеем найти это число Н, тогда при любом У число Н2 У2 будет порождать число У2 У2 (потому что, согласно правилу MI, число 2У2 порождает число У), а значит, число Н2Н2 будет порождать число Н2Н2; тем самым мы получим искомое число N. Но как найти число Н?
Эта задача сводится к следующей: как, исходя из заданного числа У и последовательно применяя операции, которые способна выполнять наша машина, получить число У2У2? Так вот, построить число У2У2 из числа У можно следующим способом: сначала построить обращение числа У, получив число У; затем слева от «у» приписать цифру 2, получив тем самым число 2У; далее построить обращение числа 2Т, получив число У2; наконец, построить повторение числа У2, получив число У2 У2. Эти операции обозначаются соответственно операционными числами 4, 6, 4 и 5, поэтому в качестве Н мы выберем число 5464.
Давайте проверим, подходит ли нам найденное число Н. Пусть число X порождает число У; тогда мы должны выяснить, действительно ли число 5464Н порождает число У2У2. Но поскольку X порождает У, то число 4Х порождает число У (в соответствии с правилом MIII); значит, число 64Х порождает число 2V (в соответствии с правилом МII). Отсюда следует, что число 464Х порождает число У2 (в соответствии с правилом MIII), и, стало быть, число 5464Х порождает число У2У2 (в соответствии с правилом MIV). Итак, мы получили, что если X порождает У, то число НХ в самом деле порождает число Y2Y2.
Теперь, когда число Я найдено, выберем число N равным Н2Н2, в результате мы получим число 5464254642, которое порождает само себя. (Читатель может легко убедиться в этом самостоятельно.)
Но раз число 5464254642 порождает само себя, то, значит, это и есть кодовый номер той комбинации, которая открывает замок сейфа. Ясно, что указанная комбинация имеет вид RVLVQRVLVQ.
Конечно, задачу о сейфе из Монте-Карло можно решить и не преобразовывая ее в задачу для