找出可能要去买羊角面包的人,
想要改善这篇文章吗?提供此问题的详细答案,包括引文和为什么您的答案正确的解释。答案不够详细的答案可能会被编辑或删除。 一个团队决定每天早上有人应给每个人带羊角面包。每次都不应该是同一个人,因此应该有一个系统来确定下一个轮到谁。这个问题的目的是确定一种算法,以确定明天将把羊角面包带给谁。 约束,假设和目标: 谁来带羊角面包将在前一天下午确定。 在任何一天,都会有人不在。该算法必须选择当天要出席的人。假设所有缺勤都是提前一天知道的,因此可以在前一个下午确定新月形面包的购买者。 总体而言,大多数人都在大多数时间都在场。 为了公平起见,每个人都应该购买羊角面包,其次数应与其他人一样多。(基本上,假设每个团队成员都有相同数量的钱用于羊角面包。) 为了减轻花名册的无聊感,最好具有一些随机性或至少感知到的随机性。这不是一个硬性约束:它更多是一种审美判断。但是,同一个人不应连续两次被选中。 带羊角面包的人应该事先知道。因此,如果人P在D日带上羊角面包,那么应该在人P出现的前一天确定这一事实。例如,如果总是在前一天确定了羊角面包的携带者,那么应该是前一天在场的人之一。 团队成员的数量足够少,以至于存储和计算资源实际上是无限的。例如,该算法可以依靠过去曾带谁羊角面包的完整历史记录。每天在快速PC上进行几分钟的计算就可以了。 这是一个现实问题的模型,因此,如果您认为这些假设可以更好地模拟场景,则可以自由挑战或完善这些假设。 起源1:找出谁要购买 Florian Margaine 的羊角面包。 起源2:找出谁打算购买 Gilles 的羊角面包。 这个问题与Gilles的版本相同,已作为实验重新发布在Programmers上,以查看不同社区如何应对编程挑战。