假设班级里有100名学生,学号1到100顺序排列,设计一个随机抽取20个人进行点名的程序,由于我们希望每个学生都能尽量被点到,因此一旦某个学生被点到以后,其概率下降,同时提高其他学生被点到的概率。规则如下:
首先假设未进行任何一次点名的时候,每个学生等概率被点到,其次假设每次点名只点一名学生。如果在某次点名中学生i被点到,那么下一次点名的时候学生i
的概率减为当前的一半,另一半概率平均分配给其他同学。请给出一个模拟程序,该程序模拟100次点名,输出每次被点到学生的学号。
有个思路:设置一个足够大的随机池,给每一个学生分配相同的空间,然后利用随机数来选取被点名的学生,同时对该学生所分配的空间和其他学生的空间进行缩减或增加。然后执行下一轮。
请问可以用R语言或者Python实现吗?


雷达卡




京公网安备 11010802022788号







