首页 开发编程 正文

php概率怎么看 php中奖概率算法详解

一看就懂$proCur){$randNum=mt_rand(1,return$result;**/$prize_arr=array('0'=array('id'=1,'5'=array('id'=6,*通过概率计算函数get_rand获取抽中的奖项id。*将中奖奖品保存在数组$res['yes']中,*/foreach($prize_...

今天给各位分享php概率怎么看的知识,其中也会对php概率算法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录:

php大转盘的获奖概率是怎么算的

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂

$proCur) {

$randNum = mt_rand(1, $proSum);

if ($randNum = $proCur) {

$result = $key;

break;

} else {

$proSum -= $proCur;

}

}

unset ($proArr);

return $result;

}

/*

* 奖项数组

* 是一个二维数组,记录了所有本次抽奖的奖项信息,

* 其中id表示中奖等级,prize表示奖品,v表示中奖概率。

* 注意其中的v必须为整数,你可以将对应的 奖项的v设置成0,即意味着该奖项抽中的几率是0,

* 数组中v的总和(基数),基数越大越能体现概率的准确性。

* 本例中v的总和为100,那么平板电脑对应的 中奖概率就是1%,

* 如果v的总和是10000,那中奖概率就是万分之一了。

*

*/

$prize_arr = array(

'0' = array('id'=1,'prize'='平板电脑','v'=1),

'1' = array('id'=2,'prize'='数码相机','v'=5),

'2' = array('id'=3,'prize'='音箱设备','v'=10),

'3' = array('id'=4,'prize'='4G优盘','v'=12),

'4' = array('id'=5,'prize'='10Q币','v'=22),

'5' = array('id'=6,'prize'='下次没准就能中哦','v'=50),

);

/*

* 每次前端页面的请求,PHP循环奖项设置数组,

* 通过概率计算函数get_rand获取抽中的奖项id。

* 将中奖奖品保存在数组$res['yes']中,

* 而剩下的未中奖的信息保存在$res['no']中,

* 最后输出json个数数据给前端页面。

*/

foreach ($prize_arr as $key = $val) {

$arr[$val['id']] = $val['v'];

}

$rid = get_rand($arr); //根据概率获取奖项id

$res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项

unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项

shuffle($prize_arr); //打乱数组顺序

for($i=0;$i

php取随机数概率算法

//首先定义概率数组

$Probability["1-10"] = 0.6;

$Probability["11-50"] = 0.25;

$Probability["51-100"] = 0.10;

$Probability["101-200"] = 0.05;

//扩大1000倍便于计算

foreach($Probability as $k = $v){

   $Probability[$k] = $v*1000;

}

$Num = 0;

$Random = rand(1,1000);//生成随机数

foreach($Probability as $k = $v){

   if(  $Num  $Random  $Random = $v+$Num){

      //进入这里表示随机数在哪一个范围内

      $Range = explode("-", $k);

      //生成范围区间的随机数

      $Result = rand($Range[0],$Range[1]);

      echo $Result;

      break;

   }else{

      $Num += $v;

   }

}

php 如何随机生成指定数字和概率?

亲,你可以这样做呦!~~

如果只有这三个数,是不好弄出 0:85%  1:5%  2:10%的

但是你如果想提高某个数字出现的概率,你可以适当让这个数组增多。

你可以这样写:

?php

// 定义一个数组,里面有85个0

$num0 = array_fill(0, 85, 0); 

// 定义一个数组,里面有5个1

$num1 = array_fill(1, 5, 1); 

// 定义一个数组,里面有10个2

$num2 = array_fill(2, 10, 2); 

// 总数组,里面总共100个元素

$allNum = array_merge($num0, $num1, $num2);

// 随机取一个元素

$randKey = array_rand($allNum);

$randnum = $allNum[$randKey];

// 以上就可以实现出现0的概率是85% 出现1的概率是5% 出现2的概率是10%了,因为一共一百个数,里面有85个是0, 5个是1, 10个是2

希望可以帮到你呦!~如果有不正确的地方,欢迎指正!~~

本人博客: ,欢迎交流学习!~~

关于php概率怎么看和php概率算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文转载自互联网,如有侵权,联系删除