Дядюшка Генри достал из погреба 5 бутылок вина, припасенных для торжественного случая, но тут возникло непредвиденное затруднение: трое обитателей хижины никак не могли прийти к единому мнению относительно того, какую бутылку откупорить первой.
Дядюшка Генри не поверил Элен и упрямо продолжал пересчитывать бутылки. Через 15 мин он досчитал до 1976 и убедился, что счет, как и предсказывала Элен, окончился на второй бутылке.
Не могли бы и вы предложить способ, позволяющий безошибочно определять, на какой бутылке закончится счет, независимо от того, до какого числа мы будем считать?
Элен догадалась, что утомительного счета на бутылках от 1 до 1976 можно избежать, если воспользоваться так называемой арифметикой вычетов, или теорией сравнений. Два числа
Обычные часы могут служить прекрасным примером конечной арифметики вычетов по модулю 12, содержащей 12 чисел. Действительно, вычет числа 12 по модулю 12 равен 0 (то есть число 12 сравнимо с нулем по модулю 12). Предположим, что на ваших часах сейчас 12 часов. Сколько будет на ваших часах через 100 часов? Разделив 100 на 12, вы узнаете, что остаток от деления равен 4 (число 100 сравнимо с числом 4 по модулю 12). Значит, через 100 часов на ваших часах будет 4 часа.
Теперь вам ясно, что метод дядюшки Генри эквивалентен арифметике вычетов? Единственное отличие состоит в том, что каждая из 3 бутылок, стоящих в середине, соответствует двум числам, поскольку эти бутылки приходится считать и слева направо, и справа налево. Счет 8 приходится на вторую бутылку, после чего весь цикл повторяется. Следовательно, метод дядюшки Генри эквивалентен арифметике вычетов по модулю 8.
Элен оставалось лишь найти вычет числа 1976 по модулю 8, то есть разделить 1976 на 8 и найти остаток. Проделав вычисления, Элен получила остаток 0. В арифметике вычетов по модулю 8 число 8 имеет нулевой вычет. Следовательно, счет до 1976 должен окончиться на второй бутылке.
Предположим, что вам захотелось узнать, на какой бутылке кончит считать дядюшка Генри, если вздумает дойти, например, до 12 345 678 987 654 321. Нужно ли для этого делить гигантское число на 8? Нет, если вы сообразите, как избежать утомительной процедуры. Так как число 1000 сравнимо с 0 по модулю 8, то необходимо делить на 8 только 3 последних знака — число 321, Проделав деление, вы узнаете, что интересующее вас семнадцатизначное число сравнимо с 1 по модулю 8. Следовательно, вздумай дядюшка Генри считать до этого числа, он бы закончил счет на первой бутылке.
Варьируя число бутылок, вы будете получать модели конечных арифметик вычетов по другим четным модулям. Если бутылки считать, как обычно, только слева направо, то вы получите модель конечной арифметики вычетов по любому модулю, как четному, так и нечетному.
Со счетом предметов, расположенных по кругу, связана знаменитая задача Иосифа Флавия, породившая обширную литературу и многочисленные варианты. Приведем еще один вариант этой старинной задачи в надежде, что он покажется вам забавным.
Давным-давно у одного богатого и могущественного короля была дочь, по имени Жозефина. Никто не мог сравниться с ней красотой. Сотни юношей из самых знатных родов тщетно мечтали получить ее руку и сердце. Наконец, Жозефина выбрала десять из них, которые нравились ей чуть больше других. Но прошло несколько месяцев, а Жозефина никак не могла решить, на ком из них остановить свой выбор. Король не на шутку встревожился.
— Ты знаешь, моя возлюбленная дочь, — начал он издалека, обращаясь к дочери, — что через месяц тебе исполнится семнадцать лет, а по старинному обычаю все принцессы должны выйти замуж прежде, чем достигнут этого возраста.
— Но, папочка, — возразила своенравная Жозефина, — как быть, если я не уверена, что Джордж нравится мне больше других?
— В таком случае, моя ненаглядная, обычай предписывает выбирать жениха по особому тайному ритуалу, недоступному разумению непосвященных. Хорошо, что ты мне, наконец, сказала, в чем твое затруднение. Мы решим его сегодня же, а там и за свадебку!
И король принялся объяснять дочери, как ей надлежит выбирать жениха в соответствии с требованиями старинного ритуала.
— Все десять претендентов на твою руку встанут в круг. Ты выберешь любого из них, назовешь его первым и отсчитаешь от него по часовой стрелке семнадцать человек — ровно столько, сколько лет тебе вскоре исполнится. Семнадцатому юноше придется покинуть круг. Мы отошлем его домой, подарив ему в утешение кошелек со 100 золотыми дукатами.
А ты примешься снова считать от 1 до 17, на этот раз назвав первым юношу, следующего по кругу за тем, кто выбыл. Так ты будешь продолжать до тех пор, пока из круга не выйдут все претенденты на твою руку, кроме одного. Он-то и станет твоим мужем.
Жозефина нахмурилась и сказала:
— Боюсь, как бы мне что-нибудь не напутать, папочка. Ты не возражаешь, если я возьму десять золотых дукатов и немного попрактикуюсь на них?
Король согласился. Жозефина разложила в круг 10 дукатов и принялась считать, откладывая каждый раз семнадцатую монету в сторону, пока не остался один-единственный дукат. Король был в восторге: дочь в совершенстве овладела тайным ритуалом.
Он повелел десятерым претендентам на руку принцессы собраться в тронном зале. Они выстроились в круг, и Жозефина принялась считать. Она без колебаний назвала первым Персиваля и считала до тех пор, пока в круге не остался только Джордж — тот самый юноша, за которого она тайком давно решила выйти замуж.
Как Жозефина догадалась, с кого ей следует начать счет, чтобы он закончился на милом ее сердцу Джордже?
Практикуясь на монетах, Жозефина заметила, что в круге остается третья монета, если первой назвать ту, с которой она начала счет. Поэтому войдя в круг претендентов, она уверенно начала счет с Персиваля, после которого третьим стоял Джордж.
Интересным обобщением задачи Иосифа Флавия был бы следующий карточный фокус, если бы вам удалось соответствующим образом расположить 13 карт пиковой масти. Сумеете ли вы это сделать?