您的位置:首页 > 其它

抽奖算法分析

2015-07-14 11:47 357 查看
**

* 算法分析:假设为有个容器A(a1,a2,a3......an),从A个中随机取出一个an,要求an小于规定v,那么每一取出一个的可能性是

* rate=v/100 中可能性,

* 设置命中率为0.5,0.5=v/100;v=50

* 同理:

* 1/20=v/100;v=5,

* @param array $proArr

*/

function get_rand($proArr) {

$result = '';

//概率数组的总概率精度

$proSum = array_sum($proArr);

//概率数组循环

foreach ($proArr as $key => $proCur) {

$randNum = mt_rand(1, $proSum); //抽取随机数

if ($randNum <= $proCur) {

$result = $key; //得出结果

break;

} else {

$proSum -= $proCur;

}

}

unset ($proArr);

return $result;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: