国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

php中獎概率算法函數

2024-04-25 20:35:47
字體:
來源:轉載
供稿:網友

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;

}

上述代碼是一段經典的概率算法,$proArr是一個預先設置的數組,假設數組為:array(100,200,300,400),開始是從1,1000這個概率范圍內篩選第一個數是否在他的出現概率范圍之內, 如果不在,則將概率空間,也就是k的值減去剛剛的那個數字的概率空間,在本例當中就是減去100,也就是說第二個數是在1,900這個范圍內篩選的。這樣篩選到最終,總會有一個數滿足要求。就相當于去一個箱子里摸東西,第一個不是,第二個不是,第三個還不是,那最后一個一定是。這個算法簡單,而且效率非常高,關鍵是這個算法已在我們以前的項目中有應用,尤其是大數據量的項目中效率非常棒。

實例

$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),

);

$rid = get_rand($arr); //根據概率獲取獎項id

$res['yes'] = $prize_arr[$rid-1]['prize']; //中獎項

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深州市| 卓尼县| 集贤县| 宁强县| 始兴县| 紫阳县| 马公市| 宿松县| 宁海县| 灵璧县| 繁昌县| 阜南县| 察隅县| 达孜县| 山东省| 竹北市| 九龙城区| 台中县| 绍兴县| 高陵县| 棋牌| 安仁县| 太原市| 东明县| 济源市| 湟中县| 贵阳市| 衡阳市| 黄冈市| 望奎县| 鄂伦春自治旗| 新昌县| 彰化市| 周口市| 玉田县| 湘潭县| 竹溪县| 巩义市| 潞城市| 多伦县| 德钦县|