Имеется N монет, среди которых есть одна фальшивая, чуть легче настоящих, и электронные весы с разрешением в 0.1 г. Настоящие монеты весят целое число граммов, а фальшивая - на 0.05 г легче, так что определить, что во взвешиваемых монетах есть фальшивая, удается с вероятностью 50% (если все монеты настоящие, весы стопроцентно показывают целое число). Монет можно взвешивать любое число зараз.
Как нужно действовать, чтобы минимизировать ожидаемое количество взвешиваний для нахождения фальшивой монеты?
Как нужно действовать, чтобы минимизировать ожидаемое количество взвешиваний для нахождения фальшивой монеты?
no subject
можно вообще выбрать произвольную монету и ничего не взвешивать. ТЕм самым минимизировав единственный искомый критерий.
no subject
Date: 2008-01-05 07:55 pm (UTC)no subject
Date: 2008-01-05 08:29 pm (UTC)no subject
Date: 2008-01-05 10:18 pm (UTC)no subject
Date: 2008-01-05 08:20 pm (UTC)no subject
Date: 2008-01-05 08:21 pm (UTC)no subject
Date: 2008-01-05 08:24 pm (UTC)no subject
Date: 2008-01-05 08:30 pm (UTC)no subject
Date: 2008-01-05 08:26 pm (UTC)no subject
Date: 2008-01-05 08:26 pm (UTC)no subject
Date: 2008-01-05 08:30 pm (UTC)no subject
Date: 2008-01-05 08:34 pm (UTC)no subject
Date: 2008-01-05 08:38 pm (UTC)no subject
Date: 2008-01-05 08:40 pm (UTC)no subject
Date: 2008-01-05 08:49 pm (UTC)no subject
Date: 2008-01-05 08:50 pm (UTC)no subject
Date: 2008-01-05 08:53 pm (UTC)no subject
Date: 2008-01-05 08:55 pm (UTC)no subject
Date: 2008-01-05 08:33 pm (UTC)no subject
Date: 2008-01-05 08:59 pm (UTC)no subject
Date: 2008-01-05 09:01 pm (UTC)no subject
Date: 2008-01-05 09:02 pm (UTC)no subject
Date: 2008-01-06 01:33 am (UTC)полная информация такого состояния - h(x) = x log2(1/x) + (1-x) log2(1/(1-x))
после взвешивания мы либо с вероятностью x/2 оказваемся в h(1) или с вероятностью (1-x/2) в состоянии h(x/(2-x)).
Надо найти x при котором h(x) - (1-x/2)* h(x/2-x) максимально.
no subject
Date: 2008-01-06 03:03 am (UTC)no subject
Date: 2008-01-07 08:58 pm (UTC)Если мы пойдем методом двоичного деления:
Делим пополам, взвешиваем. Если показало кривой вес - фальшивая монета в этой кучке, делим ее на две кучки и дальше с тем же алгоритмом. Иначе взвешиваем вторую полкучку. Если показало кривой вес - то аналогично.
Если оба взвешивания показали прямой вес, то делим каждую из кучек пополам, и полученные 4 кучки взвешиваем по-очереди, аналогично. Соображение тут такое, что чем повторно взвешивать 2 кучки, и потом делить кривую (если она найдется) и взвешивать ее половинки, за те же в худшем случае 4 взвешивания можно получить бОльшую детальность, а в лучшем случае - найти искомую четвертную кучку всего за одно взвешивание, и таким образом лучшее среднее ожидаемое количество взвешиваний.
Если мы обозначим четверные кучки A, B, C, D, то для каждой из них для точного знания о том, что монета в ней, потребуется количество взвешиваний:
Двоичным делением:
A: 2
B: 3
C: 3
D: 4
Последовательным взвешиванием каждой черверть-кучки:
A: 1
B: 2
C: 3
D: 4
Т.е. последовательный перебор выигрывает.
Потом если каждая из 4 кучек показала прямой вес - то делим уже на 8 кучек, из тех же соображений, и повторяем с ними. Но! Что мешало нам изначально поделить монеты на столько кучек, сколько возможно? Т.е. самая выгодная стратегия - взвешивать каждую монету по очереди.
no subject
Date: 2008-01-07 09:02 pm (UTC)