Математические головоломки и развлечения - Мартин Гарднер
Шрифт:
Интервал:
Закладка:
Если вы публично не отречетесь от своих слов и не принесете извинений, мы будем вынуждены прекратить подписку на ваш журнал.
Глава 35. ДВОИЧНАЯ СИСТЕМА
В настоящее время во всем цивилизованном мире принята десятичная система записи чисел, основанная на использовании последовательных степеней числа 10. Самая правая цифра любого числа указывает, сколько в нем содержится единиц, то есть 100. Вторая от конца цифра указывает количество десятков, то есть 101; третья — число сотен, то есть 102, и т. д. Например, 777 в десятичной системе означает сумму (7 100) + (7 101) + (7 102). Столь широкое распространение числа 10 в качестве основания системы счисления объясняется тем, что у нас на руках десять пальцев. Не случайно английское слово «digit» имеет два значения: «палец» и «цифра». Если на Марсе обитают человекоподобные существа с двенадцатью пальцами, то можно с уверенностью сказать, что марсианская арифметика использует двенадцатеричную систему счисления с основанием 12.
Простейшей из всех числовых позиционных систем следует считать двоичную систему счисления с основанием 2. Двоичной системой пользовались при счете некоторые первобытные племена, она была известна еще древнекитайским математикам, но по-настоящему развил и построил двоичную систему великий немецкий математик Лейбниц, видевший в ней олицетворение глубокой метафизической истины. Нуль для Лейбница был символом небытия, пустоты, единица — символом бытия или материи. Он полагал, что и нуль и единица в равной степени необходимы Создателю, ибо вселенная, состоящая из одной лишь чистой материи, была бы неотличима от пустой, ничем не возмущаемой вселенной, которую символизирует 0. По Лейбницу, все в мире сотворено из двух противоположных начал — бытия и небытия, так же как любое число в двоичной системе представлено одними лишь нулями и единицами. Со времен Лейбница и вплоть до недавнего времени двоичную систему считали не более чем занятным курьезом, лишенным какой бы то ни было практической ценности. Но вот появились вычислительные машины. Многие их детали работают по принципу «да-нет»: ток либо течет по проводнику, либо не течет; переключатель находится либо в положении «включено», либо в положении «выключено»; полюс магнита может быть либо северным, либо южным, ячейка памяти находится только в одном из двух состояний. Это и позволяет конструировать компьютеры, способные с огромной быстротой и точностью перерабатывать входные данные, закодированные в двоичной системе. «Увы! — пишет известный голландский математик Т. Данциг в своей книге «Число — язык науки», то, что некогда возвышалось как монумент монотеизму, очутилось во чреве робота».
Во многих математических играх также используется двоичная система. Назовем хотя бы игру в ним (см. главу 14), такие механические головоломки, как Ханойская башня и кардановы кольца, а также бесчисленные фокусы с перфокартами. В этой главе мы расскажем лишь об известном наборе специальных карт, позволяющих «читать мысли», и тесно связанном с ним наборе перфокарт, пользуясь которыми вы сможете показать несколько замечательных «двоичных» фокусов.
Принцип карт, позволяющих «читать мысли», ясен из приведенной выше таблицы. В ее левой части выписаны двоичные числа от 0 до 31. Каждая цифра двоичного числа — это коэффициент при некоторой степени двойки. Самая правая цифра означает коэффициент при 20, или 1. Затем справа налево идут коэффициенты при 21 (или 2), 22, 23 и т. д. Степени двойки указаны над каждым столбцом. Чтобы перевести двоичное число в десятичное, нужно просто сложить те степени двойки, которые встречаются с единичным коэффициентом. Так, двоичное число 10101 означает 16+4+1, или 21.
Чтобы десятичное число 21 перевести в двоичную систему, нужно проделать обратную процедуру. Поделив 21 на 2, мы получим 10 и 1 в остатке. Этот остаток и будет самой правой цифрой двоичного числа. Поделив 10 на 2, мы не получим остатка, поэтому на втором месте справа следует написать 0. Затем нужно поделить 5 на 2 и продолжать в том же духе до тех пор, пока не получим двоичное число 10101. Самая левая («старшая») цифра числа получается так: 2 входит в 1 нуль раз, а остаток равен 1.
Таблицу двоичных чисел легко превратить в набор карт для угадывания мыслей: нужно заменить каждую единичку тем десятичным числом, в двоичной записи которого она встречается. Результат такой подстановки показан в правой части таблицы. Каждый столбец чисел выписывается на отдельной карточке.
Дайте кому-нибудь все пять карт, попросите задумать любое из чисел от 0 до 31 и вернуть вам те карточки, на которых встречается выбранное число. Получив карточки, вы сразу же можете назвать задуманное число: чтобы узнать его, нужно лишь сложить самые верхние числа на возвращенных вам карточках.
Как получается этот фокус? Каждое задуманное число задает особую, неповторяющуюся комбинацию карт. Эта комбинация эквивалентна двоичной записи чисел. Складывая верхние числа, стоящие на возвращенных карточках, вы просто находите сумму тех степеней двойки, которые входят в двоичное разложение задуманного числа с коэффициентом 1. Чтобы еще сильнее запутать зрителей, можно воспользоваться разноцветными карточками. Вы уходите в противоположный конец комнаты и просите зрителя положить карточки с задуманным им числом в один карман, а остальные карточки — в другой. Разумеется, вы должны видеть отобранные карточки и помнить, какая степень двойки соответствует каждому цвету. Тот же фокус можно показывать и по-другому. Разложите пять карточек (на этот раз их не нужно раскрашивать) в ряд на столе.
Встав в другом конце комнаты, попросите кого-нибудь перевернуть карточки с задуманным им числом. Так как карточки расположены в порядке возрастания верхних чисел, вам остается лишь сложить верхние числа на перевернутых карточках и получить ответ.
Не мене интересные фокусы можно показать с помощью набора перфокарт, изображенного на рис. 178.
Рис. 178 Набор перфокарт, позволяющий прочесть новогоднее поздравление, отгадать задуманное число и решить некоторые логические задачи.
Они также основаны на использовании двоичной системы. Перфокарты можно изготовить из обычных карточек, используемых в библиотечных каталогах, картотеках и т. п. Отверстия должны быть чуть больше диаметра карандаша. Удобно сначала прорезать пять отверстий в одной карточке, а затем использовать ее как шаблон для того, чтобы наметить отверстия на других карточках. Если у вас нет дырокола, прорезание отверстий ножницами можно ускорить, если брать по три карточки и прорезать в них отверстия одновременно. Срезанный угол позволяет следить за тем, чтобы перфокарты не переворачивались. Проделав в каждой карточке по пять отверстий, прорежьте промежуток, отделяющий некоторые отверстия от края, так, как показано на рисунке. Отверстия, доходящие до края перфокарт, соответствуют цифре 1, остальные отверстия соответствуют цифре 0.
Таким образом, каждой перфокарте можно сопоставить некоторое двоичное число от 0 до 31, но карточки нарисованы в беспорядке.
С помощью этих перфокарт можно показать три необычных фокуса. И хотя изготовить карты довольно хлопотно, все члены вашей семьи с удовольствием будут забавляться ими.
Первый фокус заключается в быстрой сортировке перфокарт: нужно расположить их так, чтобы соответствующие перфорации числа последовательно возрастали от 0 до 31.
Перетасуйте перфокарты, как игральные, и сложите их колодой.
Продев карандаш в отверстие Е, немного приподнимите его. Половина карт окажется надетой на карандаш, а половина останется в колоде. Встряхните карандаш, чтобы те карты, которые должны остаться в колоде, не оказались вынутыми, и, подняв карандаш, разделите колоду на две части. Снимите с карандаша надетые на него карты и положите их поверх остальной колоды. Затем по очереди проделайте ту же процедуру, продевая карандаш в каждое из отверстий по порядку справа налево. Дойдя до пятого отверстия, вы с удивлением обнаружите, что двоичные числа, соответствующие перфорации карт, расположились по порядку от 0 до 31, а перелистав карточки, прочтете новогоднее поздравление.
Во втором фокусе перфокарты играют роль вычислительного устройства, позволяющего отгадывать числа, выписанные на карточках для «чтения мыслей». Продев карандаш в отверстие Е, спросим, встречается ли задуманное число на карточке, самое верхнее число которой равно 1. При утвердительном ответе нужно поднять карандаш и отбросить все карты, оказавшиеся надетыми на него. При отрицательном — отбросить карты, оставшиеся в колоде.
И в том и в другом случае у вас останется 16 карт. Спросите у вашего зрителя, находится ли задуманное им число на карточке с верхним числом 2, и повторите только что проделанные операции, продев карандаш в отверстие D. После того как ваш карандаш побывает во всех отверстиях (а вы спросите, находится ли задуманное число на соответствующей карточке, и в зависимости от ответа оставите или отбросите надетые на карандаш перфокарты), у вас останется одна-единственная перфокарта. Пробитые на ней отверстия будут образовывать двоичную запись задуманного зрителем числа. Если хотите, на каждой карточке можно заранее напечатать соответствующее десятичное число. Тогда вам не надо будет каждый раз переводить числа из двоичной системы в десятичную.