Задача
N друзей одновременно узнали N новостей, причём каждый узнал одну новость. Они стали звонить друг другу и обмениваться новостями.
Каждый разговор длится 1 час. За один разговор можно передать сколько угодно новостей.
Какое минимальное количество часов необходимо, чтобы все узнали все новости? Рассмотрите три случая:
а) N = 64,
б) N = 55,
в) N = 100.
Решение
а) Новость, известная одному из друзей, после 1-го часа станет известна не более чем двум (включая первого), после второго часа – не более чем четырём, ..., после 5-го часа – не более чем 32. Итак, потребуется не менее 6 часов.
Покажем, что 6 часов достаточно. Переговоры можно вести по следующей схеме. Занумеруем участников шестизначными двоичными числами. В k-й час беседуют люди, номера которых отличаются только в k-м разряде (например в 3-й час abc0de беседует с abc1de). При этом каждый час количество новостей, известных каждому, удваивается. (Например, после 2-го часа каждый знает четыре новости, известные четырём участникам с номерами, отличающимися от его номера в двух первых разрядах.)
Замечание. Этот способ переговоров годится только для степеней двойки. Ниже изложен метод, который годится для любых чётных чисел. в) То, что 6 часов мало, видно из а). Покажем, что 7 часов достаточно. Занумеруем участников элементами из Z50 × {–1, 1}. В 1-й час участник с номером (x, y) беседует с (x, – y), во 2-й – с (x + 1, – y), в 3-й – с (x + 3, – y), в 4-й – с (x + 7, – y), в 5-й – с (x + 15, –y), в 6-й – с (x + 31, – y), в 7-й – с (x + 63, – y). При этом количество новостей у каждого из друзей каждый час (кроме последнего) удваивается. (Занумеруем новости так же, как друзей, знающих их в начале. После 1-го часа участник с номером (0, 0) знает все новости с x = 0, после 2-го – все новости с x = 0, 1, после 3-го – все новости с x = 0, 1, 2, 3; и т. д.) б) В первый час один из участников ни с кем не беседует. Как видно из а), остальным, чтобы узнать его новость, потребуется еще не меньше 6 часов.
Разделим участников на две группы: 32 и 23 человека. В 1-й час все члены второй группы беседуют с членами первой. За следующие 5 часов члены первой группы обмениваются новостями (по схеме из а) или из в); в результате каждый знает все новости). В последний час они сообщают всю информацию членам второй группы.
Ответ
а) 6 часов, б) 7 часов, в) 7 часов.
Чтобы оставлять комментарии, войдите или зарегистрируйтесь