这个例子给大家分享了一个php中奖概率算法,可以用来抓,大轮抽奖等算法,用法很简单,代码中有详细的注释,供大家参考,具体内容如下


< PHP
*
*经典概率算法,
* $ proarr是预先设置的阵列,
*假设数组是:数组(100200300400),
*开始是从他的概率范围内的11000个概率范围内筛选第一个数字,
*如果不是,概率空间,即,k的值,从现在的概率空间中减去。
*在这种情况下,减去100,也就是说,第二个数字在1900的范围内被筛选。
所以最终总会有一些要求。
*相当于在盒子里摸东西,
第一个不是,第二个不是,第三个不是,最后一个必须是。
*该算法简单高效。
*该算法在大数据项中非常有效。
* /
功能get_rand($ proarr){
结果=;
概率的总概率
$启源= array_sum($ proarr);
循环数组的概率
foreach(proarr美元美元美元关键=采购指){
randnum美元(1美元= mt_rand,启源);
如果(randnum美元美元采购指){
$结果=键;
打破;
{人}
$启源= $采购指;
}
}
unset($ proarr);
返回$结果;
}


*
*奖阵列
*是一个二维数组,记录所有奖项信息,
*代表中奖等级,奖品是奖品,V是中奖的可能性。
*注意V必须是整数,你可以把相应的奖励的V设为0,这意味着赢得这个奖的机会是0。
v(和数组基),更准确地反映基地的概率。
*在这种情况下,V的总和是100,那么赢得平板电脑奖金的概率是1%。
*如果v的总和是10000,赢得奖品的概率是1 10000。
*
* /
prize_arr美元=阵列(
0=阵列('id' = > 1,'prize= >平板电脑,V = > 1),
1=阵列('id' = > 2,'prize= >,数码相机,V = > 5),
2=阵列('id' = > 3,'prize= >的音频,V = > 10),
3=阵列('id' = > 4,'prize= > '4g,V = > 12),
4=阵列('id' = > 5,'prize'=>10,Q,V = > 22),
5=阵列('id' = > 6,'prize= >也许下次可以哦,V = > 50),
);

*
* PHP循环奖励为前端页面的每个请求设置数组。
*通过概率计算函数get_rand获得中奖身份证。
*在数组既{是节约奖},
*和其余非奖信息保存在$ RES {没},
*最后将JSON数据输出到首页。
* /
foreach(prize_arr美元美元美元关键= val){
$ ARR { $瓦尔{ 'id' } } = { } $值V;
}
摆脱美元= get_rand($ ARR); / /根据一个ID奖获得概率

RES {是} =美元美元美元prize_arr { } { } rid-1 'prize '; / /
撤消($ prize_arr { $ rid-1 }); / /从数组中删除,其余的奖
洗牌($ prize_arr); / /排列的顺序打乱
为($我= 0;$我<计数(prize_arr美元美元);i++){
$公关{ } = { $ $ prize_arr我} { 'prize};
}
RES {没} =美元美元的公关;
print_r(合物);
>



以上是php彩票概率算法的全部内容,希望能帮助大家学习php程序的设计,希望大家多多支持。