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