Есть идея! (Гарднер) - страница 60

Чтобы найти выделенный элемент в множестве из 2 элементов, достаточно задать 1 вопрос, отвечать на который можно только «да» или «нет». В множестве из 4 элементов выделенный элемент будет найден за 2 таких вопроса, в множестве из 8 элементов — за 3 вопроса, в множестве из 16 элементов — за 4 вопроса и т. д. В общем случае n вопросов, допускающих ответы типа «да» или «нет», достаточно, чтобы найти выделенный элемент в множестве из 2>n элементов.

В задаче о телефонном номере 24 вопроса позволяют отгадать любое число от 1 до 2>24 = 16777216, что больше 9999999 — «наибольшего» из семизначных телефонных номеров. Двадцати трех вопросов может не хватить, так как число 2>23 = 8388608 меньше некоторых семизначных телефонных номеров.

Прежде всего Бобу нужно спросить у Элен: «Номер твоего телефона больше 5000000?» Ответ на этот вопрос позволит Бобу отбросить половину номеров и тем самым вдвое сузить круг дальнейших поисков. Продолжая дихотомию, он заведомо «попадет» в номер телефона Элен, задав не более 24 вопросов.

Большинство людей с трудом верят, что с помощью 24 вопросов, допускающих ответы «да» или «нет», можно отгадать любое число от 1 до 16 777 216, поскольку не сознают, как быстро возрастают члены геометрической прогрессии со знаменателем 2. Именно этот чрезвычайно быстрый рост позволяет сравнительно легко отгадывать, любое задуманное слово, задавая тому, кто его задумал, только вопросы, допускающие ответы «да» или «нет». Если вы достаточно поднаторели в дихотомии, то, хотя задуманное слово может означать что угодно, обычно его можно отгадать, задавая менее 20 вопросов.

Описанную нами процедуру отгадывания семизначного номера телефона специалисты по вычислительной технике называют алгоритмом двоичной сортировки. На том же принципе основан остроумный фокус с отгадыванием чисел. Необходимый реквизит состоит из 6 карточек, показанных на рис. 1.

Пусть кто-нибудь из зрителей задумает любое число от 1 до 64. Вручив ему карточки, попросите отобрать те из них, на которых стоит задуманное им число, и вернуть их вам. Получив карточки, вы сразу же называете задуманное число.

Секрет фокуса открывается просто: вы суммируете числа, стоящие в верхнем левом углу возвращенных вам карточек. Их сумма равна задуманному числу.

Карточки построены по системе, которая станет ясной, если все числа от 1 до 63 записать в двоичной системе, как это показано на рис. 2. Числа слева записаны в десятичной системе. Справа от каждого числа указано, как оно записывается в двоичной системе. Шесть чисел вверху таблицы означают степени числа 2, участвующие в двоичной записи чисел.