PHP编程实现计算抽奖概率算法完整实例
程序员文章站
2024-03-12 08:17:32
本文实例讲述了php编程实现计算抽奖概率算法。分享给大家供大家参考,具体如下:
本文实例讲述了php编程实现计算抽奖概率算法。分享给大家供大家参考,具体如下:
<?php //计算抽奖的概率 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; } $prize_arr = array( '0' => array('id'=>1,'prize'=>'家电','v'=>2), '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), '2' => array('id'=>3,'prize'=>'ipad','v'=>13), '3' => array('id'=>4,'prize'=>'led显示器','v'=>15), '4' => array('id'=>5,'prize'=>'u盘','v'=>25), '5' => array('id'=>6,'prize'=>'键盘','v'=>30), '6' => array('id'=>7,'prize'=>'鼠标垫','v'=>10), ); foreach ($prize_arr as $key => $val) { $arr[$val['id']] = $val['v']; } $rid = get_rand($arr); $res['yes'] = $prize_arr[$rid-1]['prize']; unset($prize_arr[$rid-1]); shuffle($prize_arr); $prize_arrcount = count($prize_arr); for($i=0;$i<$prize_arrcount;$i++){ $pr[] = $prize_arr[$i]['prize']; } $res['no'] = $pr; //抽奖结果 $ro = $res['yes']; print_r($ro); ?>
运行结果:
ipad
ps:这里再为大家提供两款功能类似的在线工具供大家参考:
在线随机数字/字符串生成工具:
在线随机字符/随机密码生成工具:
在线随机数生成工具:
高强度密码生成器:
http://tools.jb51.net/password/createstrongpassword
更多关于php相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《php数据结构与算法教程》、《php程序设计算法总结》、《php数组(array)操作技巧大全》、《php常用遍历算法与技巧总结》及《php数学运算技巧总结》
希望本文所述对大家php程序设计有所帮助。