如何使用python在一个月内平均选择休假?

alw*_*btc 3 python random algorithm

我将在一个日历月内随机分配8天休假.

我想随机选择8天,分发的日子应该尽可能均匀.我的意思是,例如,不应该在每个月的前8天收集所有8天假.

例如:[1,5,8,14,18,24,27,30]是一个很好的分布.[1,2,3,4,26,27,28,29]不是一个好的分布.

实际上,一名船员连续7天无法工作.每7天一次,必须有1天休息.

所有的日子都得到平等对待,即周日不是自己休息的日子.船员也可以在周末工作.

我想逐个选择休假.其中不是8个在一起.

你能推荐一个使用python实现这个的算法吗?

并非所有日子都可以休息几天.

最好的祝福

Mar*_*ers 8

用于random.sample()从序列中获取随机集.列出可用的日期,然后将其传递给.sample()函数:

import sample
daysoff = [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20]

picked = random.sample(daysoff, 8)
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我使用了当月的某天,并且列表省略了某些天(例如,星期日和该月的最后10天),然后我们从该群体中随机选择了8天.

  • @alwbtc:然后定义*清楚*你的意思是均匀分布?随机和我认为你的意思不一定兼容. (2认同)