Не вскрывая конвертов

Задача № 41

Фокусник вынимает стопку из 300 кредитных билетов по 1 рублю каждый[69] и предлагает вам разложить деньги в 9 конвертах так, чтобы вы могли уплатить ими любую сумму до 300 рублей, не вскрывая ни одного конверта.

Задача представляется вам совершенно невыполнимой. Вы готовы уже думать, что тут дело кроется в какой-нибудь коварной игре слов или неожиданном толковании их смысла. Но вот фокусник, видя вашу беспомощность, сам раскладывает деньги по конвертам, заклеивает их и предлагает вам назвать любую сумму в пределах трехсот рублей.

Вы называете наугад первое попавшееся число, - например 269.

Без малейшего промедления фокусник подает вам 4 заклеенных конверта. Вы вскрываете их и находите:

Теперь вы склонны заподозрить фокусника в искусной подмене конвертов и требуете повторения опыта. Он спокойно кладет деньги обратно в конверты, заклеивает и оставляет их на этот раз в ваших руках. Вы называете новое число, например 100, или 7, или 293 - и фокусник моментально указывает, какие из лежащих у вас под руками конвертов вы должны взять, чтобы составить требуемую сумму (в первом случае, для 100 р. - 4 конверта, во втором, для 7 р. - 3 конверта, в третьем, для 293 р. - 6конвертов).

В чем же дело?

Решение

Секрет этот кроется в том, чтобы разложить деньги в следующие стопки: 1 р., 2 р., 4 р., 8р., 16 р., 32 р., 64 р., 128 р. и, наконец, в последней - остальные рубли, т. е.

300 - (1 + 2 + 4 + 8 + 16 + 32 + 64 + 128) = 300 - 255 = 45.

Из первых 8конвертов возможно, как нетрудно убедиться, составить любую сумму от 1 до 255; если же задается число большее, то пускают в дело последний конверт, с 45 рублями, а разницу составляют из первых 8-ми конвертов.

Вы можете проверить пригодность такой группировки чисел многочисленными пробами и убедиться, что из них можно действительно составить всякое число, не превышающее 300. Но вас, вероятно, интересует и то, почему собственно ряд чисел 1, 2, 4, 8, 16, 32, 64 и т. д. обладает столь замечательным свойством. Это нетрудно понять, если вспомнить, что числа нашего ряда представляют степени 2-х: 21, 22, 23, 24 и т. д.[70], и следовательно, их можно рассматривать как разряды двоичной системы счисления. А так как всякое число можно написать по двоичной системе, то значит и всякое число возможно составить из суммы степеней 2-х, т. е. из чисел ряда 1, 2, 4, 8, 16 и т. д. И когда вы подбираете конверты, чтобы составить из их содержимого заданное число, вы в сущности выражаете заданное число в двоичной системе счисления. Например, число 100 мы легко сможем составить, если изобразим его в двоичной системе:

Напомним, что в двоичной системе на первом месте справа стоят единицы, на втором - двойки, на третьем - четверки, на четвертом - восьмерки и т. д.