说明
为了防止强制活动找不到人参加,班委讨论后拟如下方法:
随机生成本班31人的循环队列,但凡有院系强制任务,取出接下来几位同学参加,并标记。特殊情况如下:
- 因事无法参加:出示具体原因后,保留在队列位置,不加标记,顺次取下一位同学。
- 自愿参加:给下一次打标记。
- 活动优先考虑自愿参加的同学。
- 运动会参加入场式和广播操的已经算参加过了,按2处理。马上进行的合唱选人也由本方案进行。
该方法旨在保证每位同学参加的活动次数相同、能事先安排好相关事宜。
代码
使用 NumPy 1.15 (python3)
1 | import numpy |
结果
序号 | 学号 | 参加活动(标记) |
---|---|---|
1 | 171860649 | 写文章 |
2 | 171250630 | 运动会 |
3 | 171860543 | 写文章 |
4 | 171250623 | |
5 | 171860017 | 运动会 |
6 | 171860571 | |
7 | 171860609 | |
8 | 171860553 | |
9 | 171860592 | |
10 | 171860637 | |
11 | 171860696 | 合唱 |
12 | 171860599 | |
13 | 171860639 | |
14 | 171860509 | |
15 | 171860575 | |
16 | 171860013 | |
17 | 171860532 | |
18 | 171860558 | |
19 | 171860508 | |
20 | 171860547 | 运动会 |
21 | 171180558 | |
22 | 171870691 | |
23 | 171860548 | |
24 | 171860647 | |
25 | 171860624 | |
26 | 171860004 | 运动会 |
27 | 171860578 | |
28 | 171860658 | 运动会 |
29 | 171860695 | 运动会 |
30 | 171860020 | |
31 | 171860538 |
注:上表中的标记包括本学期的两个活动。如果你发现标记有误请及时联系班委。