小弟我对于乐透机率小有疑问
于是写了个简单的程式来跑一下
但不管怎么跑总是搭不起来
我的问题如下
乐透49个号码,我只签2个号码
要求出
2中0
2中1
2中2
三种状况的机率
自己直接用公式算完的机率分别是
2中0 = 0.767857143
2中1 = 0.219387755
2中2 = 0.012755102
但是我自己写了程式下去跑
机率总和永远大于1
虽然误差一定会有
但是这怎么看都不太像是误差QQ
想请各位前辈帮忙看看是否程式写错或是逻辑观念错误
作者: marx93521 (<阿ㄉ一ㄥˋ>) 2018-05-07 15:39:00
winOne跟winAll是不是重复计算到了?
作者:
jej (晃奶大馬桶)
2018-05-07 19:50:00看到double就要小心IEEE的限定
作者:
wemee (方天画)
2018-05-08 12:29:00IEEE 754 我中招很多次
作者: FromTo 2018-05-08 14:35:00
二中一的判断式有误,会包含二中二。包含A(B)&&不包含B(A)
你检查中奖的第一行不对 (A||B) A是true就不会管B是怎样了
但我2中2是另外写if,并不是写else if,,这样也不行吗?
如果你get(0)和get(1)都是true他就会直接执行winOne++然后到下面又winAll++一次所以你第一个if判断的地方出错了
作者:
ssccg (23)
2018-05-09 13:09:00就是因为另外写if才会错啊A and B就已经包含在A or B里面了只写if 不用else的话,每个条件都必须不会互相包含写if else if 要由不包含其他条件的依序放宽逻辑观念的问题比较大
作者:
gmoz ( This can't do that. )
2018-05-09 16:30:00你需要先知道一下if()里面是怎么运作的