php0.1,
5 => 1,
1 => 27,
2 => 27,
3 => 27,
4 => 17.9,
);
$nums = 30000000;
for($i=1;$i $value){
$rand += $value * 10000;
if($random <= $rand){
$thisID = $k;
break;
}
}
$result[$thisID] += 1;
}
foreach($result as $key => $value){
$result[$key] = round((float)($value / $nums) * 1000000)/10000;
}
ksort($result);
print_r($result);
?>
结果是
Array
(
[1] => 26.985
[2] => 26.9879
[3] => 26.987
[4] => 17.9519
[5] => 0.9917
[6] => 0.0964
)
跑了很多次都是差不多的,
实际用户10000W次结果就有点问题
Array
(
[1] => 27.0581
[2] => 27.2639
[3] => 27.2125
[4] => 18.1036
[5] => 0.3031
[6] => 0.0588
)
怎么能保证小概率的时候波动小一点
回复内容:
php0.1,
5 => 1,
1 => 27,
2 => 27,
3 => 27,
4 => 17.9,
);
$nums = 30000000;
for($i=1;$i $value){
$rand += $value * 10000;
if($random <= $rand){
$thisID = $k;
break;
}
}
$result[$thisID] += 1;
}
foreach($result as $key => $value){
$result[$key] = round((float)($value / $nums) * 1000000)/10000;
}
ksort($result);
print_r($result);
?>
结果是
Array
(
[1] => 26.985
[2] => 26.9879
[3] => 26.987
[4] => 17.9519
[5] => 0.9917
[6] => 0.0964
)
跑了很多次都是差不多的,
实际用户10000W次结果就有点问题
Array
(
[1] => 27.0581
[2] => 27.2639
[3] => 27.2125
[4] => 18.1036
[5] => 0.3031
[6] => 0.0588
)
怎么能保证小概率的时候波动小一点
把srand放到循环外
實際概率和設置概率有差異。。。
你怎麼知道實際概率是多少的?
你知道的只是頻率好不好。。。
你的問題本身就是錯的。
而頻率和概率不等幾乎是必然的。。。
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网