
是新年的时候了. 每个公司都必须召开年会,而这恰好是最近的年会系统.

要求: 单奖. 您可以设置某些人的中奖概率和中奖者的数量php抽奖概率算法,最后计算出中奖者

算法实现:

<?php
/**
* $prize_arr 参与抽奖人员数据
* id: 一般是成员ID
* name 姓名
* v 得奖概率
***/
$prize_arr = array(
0 => array(id=>1,name=>小王,v=>1),
1 => array(id=>2,name=>小李,v=>5),
2 => array(id=>3,name=>小张,v=>10),
3 => array(id=>4,name=>小二,v=>12),
4 => array(id=>5,name=>小菜,v=>22),
6 => array(id=>6,name=>小范,v=>50),
7 => array(id=>7,name=>小范01,v=>50),
8 => array(id=>8,name=>小范02,v=>50),
9 => array(id=>9,name=>小范03,v=>50),
10 => array(id=>10,name=>小范04,v=>50),
11 => array(id=>11,name=>小范05,v=>50),
12 => array(id=>12,name=>小范06,v=>50),
13 => array(id=>13,name=>小范07,v=>50),
14 => array(id=>14,name=>小范08,v=>50),
15 => array(id=>15,name=>小范09,v=>100),
16 => array(id=>16,name=>小范10,v=>100),
);
foreach ($prize_arr as $key => $val) {
$arr[$key] = $val[v];
}
$total_num = 3; //设定得中奖人数量
$temp_rest=array();
for($i=0;$i<$total_num;$i++)
{
$rid = get_rand($arr); //根据概率获取人员ID
$temp_rest[]= $prize_arr[$rid]; //中奖项
unset($prize_arr[$rid]);
unset($arr[$rid]);
}
print_r($temp_rest);//得出结果
//得出当前中奖人
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;
}

它非常有用,您的朋友可以使用它!
然后问题来了. 如果我将某人中奖的机率设置为100%,那么确定中奖了吗?
答案是否定的. 我们讨论了这个问题. 抽奖不允许太黑. . 你的机率很高. 只是您的机会更大php抽奖概率算法,但这并不一定是您中了奖! (当然您也可以添加. 但是我坚决抵制这种可耻的行为)
实现如下:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-253080-1.html
必须给他弄沉