|
发表于 2019-5-13 13:56:38
|
显示全部楼层
回复 1# bbye
很明显,这个计算命中的公式是有问题的。会造成命中期望大于50%概率时,计算命中大于期望命中,命中期望小于50%时,计算命中低于期望命中,命中50%时是持平。
简单举个例子:
A->Rand()
B->Rand()
显然有A>B的概率是0.5
极端离散考虑假设A的取值不是[0,1]之间,而是只取0或1,则有
A 0 0 1 1
B 0 1 0 1
四种模式,这时需要除去A=B的2种情况,仅讨论A>B或AB就是,B>A的预期情况,各占50%概率。
现在考虑把A变成2*A,取值范围0,1,2
则有
A 0 0 1 1 2 2
B 0 1 0 1 0 1
这时也要除去,A=B的两种情况。那么实际2A>B的概率是0.75。
直接连续化、分段考虑也是可以的
2A有0.5概率取得[1,2]的值,此时2A>B成立的概率是1.
2A有0.5概率取得[0,1]的值,此时2A>B成立的概率是0.5.
综合考虑,2A>B的概率是0.5*1+0.5*0.5=0.75.
若按wiz公式
75/25 * A > B的实际计算概率是83%而不是期望的75%,相差接近10%
----------------------------------------------------------------------------------------------
可以用Excel验证(系数为2考虑,其他情况替换A1输入并自动扩展可得):
A1输入 =RAND()*2
B1输入 =RAND()
C1输入 =A1>B1
D1插入一个1~10000的序列
而后自动扩展A1~A10000、B1~B10000、C1~C10000
然后COUNTIF(C1:C10000,TRUE)计算下可知0.75的期望是正确的。
1楼提到的85/15系数,实际计算得到的概率是91%
-----------------------------------------------------------------------------------------------
算法设计错误,导致命中低于50%时,实际命中普遍更低。高于50%时,普遍命中偏高。
可知在较正常工作范围期望概率0.6~0.85区间段,偏差都较大
错误计算公式的实际概率,期望概率,偏差(高于50%部分,低于部分用1-X得出)
0.5 | 0.5 | 0 | 0.519607843137255 | 0.51 | 0.009607843137255 | 0.538461538461538 | 0.52 | 0.018461538461539 | 0.556603773584906 | 0.53 | 0.026603773584906 | 0.574074074074074 | 0.54 | 0.034074074074074 | 0.590909090909091 | 0.55 | 0.040909090909091 | 0.607142857142857 | 0.56 | 0.047142857142857 | 0.62280701754386 | 0.57 | 0.05280701754386 | 0.637931034482759 | 0.58 | 0.057931034482759 | 0.652542372881356 | 0.59 | 0.062542372881356 | 0.666666666666667 | 0.6 | 0.066666666666667 | 0.680327868852459 | 0.61 | 0.070327868852459 | 0.693548387096774 | 0.62 | 0.073548387096774 | 0.706349206349206 | 0.63 | 0.076349206349206 | 0.71875 | 0.64 | 0.07875 | 0.730769230769231 | 0.65 | 0.080769230769231 | 0.742424242424242 | 0.66 | 0.082424242424242 | 0.753731343283582 | 0.67 | 0.083731343283582 | 0.764705882352941 | 0.68 | 0.084705882352941 | 0.77536231884058 | 0.69 | 0.08536231884058 | 0.785714285714286 | 0.7 | 0.085714285714286 | 0.795774647887324 | 0.71 | 0.085774647887324 | 0.805555555555556 | 0.72 | 0.085555555555556 | 0.815068493150685 | 0.73 | 0.085068493150685 | 0.824324324324324 | 0.74 | 0.084324324324324 | 0.833333333333333 | 0.75 | 0.083333333333333 | 0.842105263157895 | 0.76 | 0.082105263157895 | 0.850649350649351 | 0.77 | 0.080649350649351 | 0.858974358974359 | 0.78 | 0.078974358974359 | 0.867088607594937 | 0.79 | 0.077088607594937 | 0.875 | 0.8 | 0.075 | 0.882716049382716 | 0.81 | 0.072716049382716 | 0.890243902439024 | 0.82 | 0.070243902439025 | 0.897590361445783 | 0.83 | 0.067590361445783 | 0.904761904761905 | 0.84 | 0.064761904761905 | 0.911764705882353 | 0.85 | 0.061764705882353 | 0.918604651162791 | 0.86 | 0.058604651162791 | 0.925287356321839 | 0.87 | 0.055287356321839 | 0.931818181818182 | 0.88 | 0.051818181818182 | 0.938202247191011 | 0.89 | 0.048202247191011 | 0.944444444444444 | 0.9 | 0.044444444444444 | 0.950549450549451 | 0.91 | 0.040549450549451 | 0.956521739130435 | 0.92 | 0.036521739130435 | 0.962365591397849 | 0.93 | 0.032365591397849 | 0.968085106382979 | 0.94 | 0.028085106382979 | 0.973684210526316 | 0.95 | 0.023684210526316 | 0.979166666666667 | 0.96 | 0.019166666666667 | 0.984536082474227 | 0.97 | 0.014536082474227 | 0.989795918367347 | 0.98 | 0.009795918367347 | 0.994949494949495 | 0.99 | 0.004949494949495 |
|
|