php概率计算_PHP几个常用的概率算法

算法一

1 /**2 * 全概率计算3 *4 * @param array $p array('a'=>0.5,'b'=>0.2,'c'=>0.4)5 * @return string 返回上面数组的key6 */

7 function random($ps){8 static $arr = array();9 $key = md5(serialize($ps));10 if (!isset($arr[$key])) {11 $max = array_sum($ps);12 foreach ($ps as $k=>$v) {13 $v = $v / $max * 10000;14 for ($i=0; $i

算法二

1 function get_rand($proArr) {2 $result = '';3 //概率数组的总概率精度

4 $proSum = array_sum($proArr);5 //概率数组循环

6 foreach ($proArr as $key => $proCur) {7 $randNum = mt_rand(1, $proSum);8 if ($randNum <= $proCur) {9 $result = $key;10 break;11 } else{12 $proSum -= $proCur;13 }14 }15 unset ($proArr);16 return $result;17 }

算法二是一段经典的概率算法,$proArr是一个预先设置的数组,假设数组为:array(100,200,300,400),开始是从1,1000这个概率范围内筛选第一个数是否在他的出现概率范围之内, 如果不在,则将概率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值