python写抽签程序不重复

python写抽签程序不重复,第1张

用python的random函数做一个班级抽签小程序

import random

times=1

while times <= 5:

members =\

['张俊宇',

'孙晓涵',

'黄皓',

'黄媛媛',

'张仁鹏',

'班正平',

'闭玉婷',

'陆腾辉',

'高伟',

'黄锦鸿',

'姜小雪',

'苏慧芳',

'吴锦婷',

'谢晓桐',

'莫成妮',

'农诗佳',

'韦凯英',

'韦肖怡',

'安元光',

'卢崇竣',

'程俊龙',

'麻晨',

'仲湛秋',

'李宗树',

'农国震',

'赵一钊',

'李翀宇',

'钱威骅',

'陆嘉颖',

'古俊峰',

'李林海',

'王启龙',

'丁晟']

winner =random.choice(members)

print(winner)

times=times+1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

while循环用于你想一次抽几个人,如五个人就小于等于5。

emm如果哪里有不足或者可以改进的谢谢大家提出来

运行结果

抽签出来的名单

首先,分组数必须大于等于N,才能保证不至于使得同一个院系的队伍在同一个组里。

第二,分组数必须小于等于N,才能保证每个组每个院系都有队伍。

所以只能分成N个组,把每个院系的N个不同水平级别的队伍放入这N个组就可以了,每个组放一个队伍,随机放入就变成混合比赛。

具体方法是,抽签条做成1--N的N张,每个院系的N个队伍一起抽签,抽到1的进每一组,抽到2的进第二组,以此类推。

后面的小组分组比赛要根据每个小组的队伍数以及你设置的比赛规则(循环赛还是淘汰赛)来设置,在这里就无法确定了

Excel中,由952组数据中随机抽取360组不重复的数据。

开启分步阅读模式

工具材料:

安装Excel程序的电脑

*** 作方法

01

如果数据在Sheet2 的A:D列,在Sheet2的A列前插入两列辅助列;

02

在左上角的名称框中,输入A2:A953,按Enter键,将A2:A953单元格选中,输入=RAND(),按Ctrl+Enter组合键结束,快速向A2:A953单元格中输入随机数(随机数的重复机率极低);

03

在B2单元格输入以下公式,然后向下填充公式,得到A列数据的排名(同样没有重复排名)

=RANK(A2,A:A)

04

在Sheet1的A2单元格输入以下公式,然后向右向下填充公式到D361单元格,得到由Sheet2工作表中随机取得的不重复的360行数据

=VLOOKUP(ROW()-1,Sheet2!$B:$F,COLUMN(B1),0)

公式表示:以当前行号在Sheet2的B列精确匹配对应行,并返回对应第2列(Sheet2的C列)数据。

05

因随机取数时,工作表只要输入一个数据,就会在“自动计算”中 重新得到一组数据,因此,可以将Sheet2的A列,“复制”并“选择性粘贴”为“数值”,避免数据不断变换。或者将“公式”选项中的“计算选项”设置为“手动”。

特别提示

通过RANDBETWEEN函数得到随机函数的方法,会出现重复数据,从而达不到既随机又唯一取数的目的,没有RAND得到一列不重复的随机数再排名来得科学有效。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8088447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存