Обобщённая задача о фальшивых монетах
М. Мамикон
Многим читателям хорошо известна следующая классическая задача о фальшивых монетах, поражающая тем, что она разрешима:
Задача о мешке с фальшивыми монетами
Имеются N мешков и в каждом из них достаточное количество монет. Все мешки, кроме одного, содержат одинаковые «нормальные» монеты, в одном же мешке все монеты фальшивые. Известен вес нормальной монеты и известно, что фальшивая монета на 1 грамм легче нормальной. Требуется при помощи одного взвешивания на весах с разновесками обнаружить мешок с фальшивыми монетами.
до веса такого же количества нормальных монет (который нам известен) на количество граммов, равное номеру именно того мешка, который содержит фальшивые монеты. (Эта задача решается – правда, хитрее – и в том случае, когда вес нормальной монеты неизвестен и разновесков нет. Подумайте, как.)
Раздумывая над этой задачей, я пришёл к более удивительному выводу о том, что одним взвешиванием может быть решена и более сложная задача:
Задача о нескольких мешках с фальшивыми монетами
Пусть в условиях предыдущей задачи имеется не один, а несколько мешков с фальшивыми монетами, причём их количество неизвестно. Требуется при помощи одного взвешивания на весах с разновесками обнаружить все эти мешки.
Решив и эту задачу, я осмелился на дальнейшие усложнения. Задача оказалась разрешимой при ещё более удивительных условиях:
Задача о мешках с тяжёлыми и лёгкими монетами
Среди N мешков имеются некоторое (неизвестное) количество мешков с тяжёлыми и некоторое (тоже неизвестное) количество мешков с лёгкими монетами. Лёгкая монета на 1 г легче нормальной, а тяжёлая, наоборот, на 1 г тяжелее нормальной. Требуется при помощи одного взвешивания на весах с разновесками узнать, какие мешки содержат нормальные монеты, какие – тяжёлые, а какие – лёгкие. (Напомним, что внутри данного мешка все монеты одинакового веса и что вес нормальной монеты известен.)
Разрешимость и этой задачи вдохновила меня на дальнейшее обобщение, которое уже напрашивалось само собой. До сих пор мы фактически рассматривали задачи о двух или трёх сортах (типах) монет, поэтому естественна следующая
Задача о мешках с разносортными монетами
и нам оно неизвестно. Монеты разных сортов отличаются друг от друга по весу, причём на целое число граммов. Вес монеты каждого сорта нам известен. Требуется при помощи одного взвешивания на весах с разновесками определить, к какому сорту принадлежат монеты в каждом мешке.
Мы предлагаем читателю попробовать самостоятельно решить предыдущие задачи, прежде чем перейти к излагаемому ниже решению обобщённой задачи о фальшивых монетах.
Решение задачи о мешках с разносортными монетами
Перенумеруем последовательно мешки от 0 до N – 1. Обозначим вес самой лёгкой монеты через m. Пусть мешок под номером j содержит монеты веса m + Δj, то есть Δj определяет сорт монеты в j-м мешке. Пусть в зависимости от сорта монеты величины Δ могут принимать (целые) значения 0, 1, 2, ..., меньшие k, то есть количество сортов монет равно k.
Теперь возьмем из мешка с номером j количество монет, равное k j, то есть из первого мешка – одну монету, из второго – k, ..., из последнего – kN–1 монет. Всего взятых монет будет
Их суммарный вес S на весах будет равен
N–1 |
N–1 |
S = |
∑ |
(m + Δj )k j = m·M + |
∑ |
Δj k j. |
j=0 |
j=0 |
Поскольку всегда Δj < k, вторая сумма в правой части
N–1 |
Δ = |
∑ |
Δj k j = Δ0 + Δ1 k + Δ2 k2 + ... + ΔN–1kN–1 |
j=0 |
представляет собой перевод числа Δ из десятичной системы счисления (в которой работают весы) в систему счисления с основанием, равным k. В этой системе Δ записывается в виде числа со следующей последовательностью цифр:
Δ → |
ΔN–1 ΔN–2... Δ2 Δ1 Δ0 |
. |
|
(*) |
Мы видим, что каждая цифра этой записи показывает сорт монеты в последовательности мешков, взятой в обратном порядке. В этом состоит суть нашего решения.
Итак, из суммарного веса S всех выбранных M монет вычитаем величину Mm – вес того же количества монет наилегчайшего сорта и оставшееся число Δ = S – Mm переводим в систему счисления с основанием k (разлагаем по степеням k, начиная со старшей). Тогда мы получим число вида (*). Его j-я цифра с конца (счёт ведётся от нуля) показывает сорт монеты Δj в мешке под номером j.
Пример
В приводимой ниже таблице указаны веса монет, содержащихся в пяти мешках. Сверху дана нумерация мешков справа налево (это и есть обратный порядок), а под мешками указаны сорта монет. Они являются искомыми.
4 |
3 |
2 |
1 |
0 |
|
11 г |
|
|
12 г |
10 г |
Δj |
1 |
2 |
0 |
2 |
0 |
сорт монеты Δj |
81 |
27 |
9 |
3 |
1 |
количество взятых монет kj |
В этом случае k = 3 и количество взятых монет соответствует степеням тройки, как показано в последней строчке таблицы. Всего мы взяли M = 121 монету. Их общий вес на весах будет равен S = 1351 г. Вычитая величину M·m = 121·10, получим Δ = 141 г. Переводя Δ в троичную систему
Δ = 1·34 + 2·33 + 0·32 + 2·31 + 0·30,
получим число 12020, последовательность цифр которого совпадает с исходной последовательностью сортов, приведённой в таблице.
Если k = 10, то надобность перевода Δ из одной системы счисления в другую отпадает. Для случая k = 3 существует несколько отличная от нашей интерпретация решения задачи. Найти её мы предоставляем читателю.
солдатами с целью их дезорганизации и что те потеряли над её решением более 40 000 человеко-часов.
В книге Д. Бизама и Я. Герцега «Многоцветная логика» (М., «Мир», 1978 г.) рассматривается также случай двух мешков с фальшивыми монетами и приводится решение этой задачи при помощи двух взвешиваний.
|