Команда решила, что каждое утро кто-то должен приносить круассаны для всех. Каждый раз это не должен быть один и тот же человек, поэтому должна существовать система, определяющая, чья очередь за ним. Цель этого вопроса - определить алгоритм решения, чья очередь будет приносить круассаны завтра.
Ограничения, предположения и цели:
- Чья очередь приносить круассаны, определится днем ранее.
- В любой день некоторые люди отсутствуют. Алгоритм должен выбрать кого-то, кто будет присутствовать в этот день. Предположим, что все пропуски известны за день, поэтому покупателя круассана можно определить накануне.
- В целом, большинство людей присутствуют в большинстве дней.
- В интересах справедливости каждый должен покупать круассаны столько раз, сколько другие. (В основном, предположим, что у каждого члена команды есть одинаковая сумма денег, которую можно потратить на круассаны.)
- Было бы неплохо иметь некоторый элемент случайности или, по крайней мере, воспринимаемой случайности, чтобы облегчить скуку реестра. Это не жесткое ограничение: это скорее эстетическое суждение. Однако один и тот же человек не должен выбираться дважды подряд.
- Человек, который приносит круассаны, должен знать заранее. Таким образом, если человек P должен принести круассаны в день D, то этот факт должен быть определен в какой-то предыдущий день, когда присутствует человек P. Например, если средство доставки круассанов всегда определяется накануне, то это должен быть один из людей, присутствующих накануне.
- Количество членов команды достаточно мало, поэтому ресурсы хранения и вычислительные ресурсы практически не ограничены. Например, алгоритм может опираться на полную историю того, кто принес круассаны в прошлом. До нескольких минут вычислений на быстром ПК каждый день будет в порядке.
Это модель реальной проблемы, поэтому вы можете оспорить или уточнить допущения, если считаете, что они лучше моделируют сценарий.
Происхождение: Узнайте, кто собирается купить круассаны от Флориана Маргэйна . Моя переформулировка здесь имеет несколько иные требования.