说明
为了防止强制活动找不到人参加,班委讨论后拟如下方法:
随机生成本班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 |
注:上表中的标记包括本学期的两个活动。如果你发现标记有误请及时联系班委。