Угадать число спичек
Задача № 42
Свойством двоичной системы можно воспользоваться и для следующего фокуса. Вы предлагаете кому-нибудь взять неполный коробок со спичками, положить его на стол, а рядом положить 8бумажных квадратиков. Затем просите в вашем отсутствии проделать следующее: оставив половину спичек в коробке, перенести другую половину на ближайшую бумажку; если число спичек нечетное, то излишнюю спичку положить рядом с бумажкой, налево от нее. Спички, очутившиеся на бумажке, надо (не трогая лежащей рядом) разделить на две равные части: одну половину положить в коробку, другую - переложить на следующую бумажку; в случае нечетного числа остающуюся спичку положить рядом со второй бумажкой. Далее поступать таким же образом, возвращая всякий раз половину спичек обратно в коробку, а другую половину - перекладывая на следующую бумажку, не забывая, при нечетном числе спичек, класть одну спичку рядом. В конце концов все спички, кроме одиночных, лежащих рядом с бумажками, возвратятся в коробку.
Когда это сделано, вы являетесь в комнату и, бросив взгляд на пустые бумажки, называете число спичек во взятой коробке.
Как можно по пустым бумажкам и случайным единичным спичкам догадаться о первоначальном числе спичек в коробке?
Решение
Эти «пустые» бумажки в данном случае очень красноречивы: по ним и по одиночным спичкам можно буквально прочесть искомое число, потому что оно написано на столе - в двоичной системе счисления. Поясним это на примере. Пусть число спичек было 66. Последовательные операции с ними и окончательный вид бумажек показаны на следующих схемах:
Последовательные операции.
Окончательный вид.
Не нужно большой проницательности, чтобы сообразить, что проделанные со спичками операции в сущности те же самые, какие мы выполнили бы, если бы хотели выразить число спичек в коробке по двоичной системе счисления; окончательная же схема - прямо изображает это число в двоичной системе, если пустые бумажки принять за нули, а бумажки, отмеченные сбоку спичкой, - за единицы. Читая схему слева направо получаем
то есть в десятичной системе: 64 + 2 = 66.
Если бы было 57 спичек, мы имели бы иные схемы:
Искомое число, написанное по двоичной системе:
А в десятичной: 32 + 16 + 8 + 1 = 57.