根据概率比随机平均返回相应的值,几率平均算法

根据指定的概率设定返出的数量

定义随机函数

  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. return $result;
  16. }

测试

  1. # 定义数字范围,【‘返回的数字’ => ‘出现的百分比几率’】
  2. $price = array(
  3. 108 => 60,
  4. 118 => 35,
  5. 168 => 3,
  6. 188 => 2,
  7. );
  8. echo $total_amount = Get_rand($price);


评论 0

发表评论

Top