Несколько золотоискателей захотели разделить намытый ими золотой песок поровну, однако весов рядом не оказалось, а поехать в город, оставив песок никто не захотел. Если бы их было двое, то все было бы понятно: первый делит кучу на две части, а второй первым выбирает себе любую часть, при этом, если кому то и досталась меньшая часть, то ему в этом следует винить только себя. Обобщите способ раздела песка поровну между n золотоискателями (n>2). Способ должен гарантировать, что каждый получит не менее 1/n песка (конечно если только он сам не оплошается), даже если остальные золотоискатели вступят в сговор.
Ответ:
Вообще существует много способов решения, но мне нравится так называемый "громкий" метод решения, описанный у Гарднера. Для удобства представим, что все золото перелито в один длинный кусок золотой проволоки, который и нужно разделить так, чтобы никто не был в обиде. Один из делящих (неважно, кто) медленно перемещает руку с кусачками от одного конца проволоки к другому, тем самым отмеряя проволоку. В тот момент, когда кому-то кажется, что отмеренная доля не меньше 1/n, он громко кричит "Стоп" и тут же человек с кусачками сжимает инструмент, и крикнувший получает эту самую долю. Все молчавшие, естественно, считают, что 1/n еще не достигнута, поэтому оставшаяся часть не меньше (n-1)/n, а значит, каждый из них имеет шанс получить не меньше 1/n. Далее процесс дележа продолжается уже для (n-1) человека тем же самым образом.