主题:这样公平吗????????????
yaoyusheng
[专家分:460] 发布于 2007-08-28 10:41:00
n = Int(Rnd * 77)
Print n
有76个同学,学号从1到76,用上面这个程序随机抽取来提问,公平吗?
每个同学被抽到的机会均等吗?
还有更好的办法吗?
n = Int((Rnd * 0.77) * 100)
Print n
这个又怎么样?
回复列表 (共5个回复)
沙发
yaoyusheng [专家分:460] 发布于 2007-08-28 11:25:00
引用:
不行,因为有可能抽到0号学生,应该是
a=int(rnd*76+1)
print a
对!当rnd<=1/77时那么int(rnd*77)就为0了,我疏忽了这点.
这样改了以后,每个学生被抽到的机会一样了吗?
板凳
Matodied [专家分:7560] 发布于 2007-08-28 13:39:00
这样实际上是不公平的。
因为抽到1号和76号的可能性比其他号的可能性少,虽然只少一点点……
3 楼
lz27 [专家分:300] 发布于 2007-08-28 13:39:00
一样
4 楼
QB爱好者 [专家分:370] 发布于 2007-08-28 13:57:00
其实说1号与76号的概率小只是一个误区,概率是一样的!
5 楼
lz27 [专家分:300] 发布于 2007-08-28 14:03:00
2楼Matodied的回答是对的
从理论上来讲
因为rnd是属于(0,1) <-注意这里是开区间
就是说两头的0和1取不到
但是实际上这点误差完全可以省略掉
我来回复