回 帖 发 新 帖 刷新版面

主题:这样公平吗????????????

n = Int(Rnd * 77)
Print n

有76个同学,学号从1到76,用上面这个程序随机抽取来提问,公平吗?
每个同学被抽到的机会均等吗?

还有更好的办法吗?
n = Int((Rnd * 0.77) * 100)
Print n

这个又怎么样?

回复列表 (共5个回复)

沙发

引用:
不行,因为有可能抽到0号学生,应该是
a=int(rnd*76+1)
print a



对!当rnd<=1/77时那么int(rnd*77)就为0了,我疏忽了这点.

这样改了以后,每个学生被抽到的机会一样了吗?

板凳

这样实际上是不公平的。
因为抽到1号和76号的可能性比其他号的可能性少,虽然只少一点点……

3 楼

一样

4 楼

其实说1号与76号的概率小只是一个误区,概率是一样的!

5 楼

2楼Matodied的回答是对的
从理论上来讲
因为rnd是属于(0,1)  <-注意这里是开区间
就是说两头的0和1取不到
但是实际上这点误差完全可以省略掉

我来回复

您尚未登录,请登录后再回复。点此登录或注册