前几天有个同学问了我一个问题:
现在班上共计有70名学生,题库中有20道题,每位同学随机抽5道题(不重复),该怎么用python实现这个功能?
感兴趣的同学可以先不看下面的分析,试着自己实现一下这个功能。
已经实现的同学或觉得有点问题的小伙伴,看看我的分析思路吧。
1 解题思路
step1:定义一个5行70列的全0矩阵,命名为stu_tit,用来存放每位学生的抽题结果(其中每一列可以存储一位学生抽取的题号)。
step2:定义1到20的题号,命名为title。
stpe3:用random.sample函数从题号中随机抽取5个不重复的数字。
step4:利用循环把每次抽取的题号保存到stu_tit的列中,重复70次即可实现上述功能。
step5:把循环后得到的结果矩阵转换成数据框,方便我们观看。
2 具体实现代码
代码语言:javascript复制import numpy as np
stu_tit = np.zeros((5,70)) #定义存放数据的全0矩阵
title = range(1,20) #生成题号
import random
for i in range(0,stu_tit.shape[1]):
stu_tit[:,i] = random.sample(title, 5) #为每位同学赋予随机挑选的题
import pandas as pd
stu_tit = pd.DataFrame(stu_tit).astype(int) #转成DataFrame
得到的结果如下:
至此,这个小功能就实现啦,感兴趣的同学可以自己动手实现一下。如果有不同的实现方法,也可以在公众号后台跟我讨论一下