這是乙個很經典的概率演算法:
function get_rand($proarr) else
} unset ($proarr
);
return
$result
; }
假設:我們有這樣乙個陣列:a獎概率20%,b獎概率30%,c獎概率50%
$prize_arr =array('a'=>20,'b'=>30,'c'=>50);
模擬函式執行過程:
總概率精度為20+30+50=100
第一次陣列迴圈,$procur=20
假設抽取的隨機數rand(1,100),假設抽到$randnum=55
if判斷-------
如果$randnum<=20,則result=a
否則進入下一迴圈,總概率精度變為100-20=80
第二次陣列迴圈,$procur=30
假設抽取的隨機數rand(1,80),假設抽到$randnum=33
if判斷---------
如果$randnum<=30,則result=b
否則進入下一迴圈,總概率精度變為80-30=50
第三次陣列迴圈,$prosur=50;
假設抽取的隨機數rand(1,50),不管怎麼抽,隨機數都會《或=50,
那麼得出result=c;
因為樣本沒有改變,雖然可能抽取的隨機數不止乙個,但是概率是不變的。
砸金蛋案例:
publicfunction
eggajax()
$prize_id = $this->getrand($arr); //
根據概率獲取獎品id
$data['msg'] = ($prize_id == 7) ? 0 : 1; //
如果為0則沒中
$data['prize_title'] = $prize_arr[$prize_id - 1]['title']; //
中獎獎品
echo json_encode($data
);
exit; //
以json陣列返回給前端
}public
function getrand($proarr)
else
} unset($proarr
);
return
$rs;
}
具體js:
var ourl = "";$.post(ourl,
function
(data);
},"json");
php概率計算 PHP指定概率演算法
php指定概率演算法,可用於刮刮卡,大轉盤等 演算法。假設 有乙個二維陣列,記錄了所有本次 的獎項資訊 test arr array a 20,b 30,c 50 a獎概率20 b獎概率30 c獎概率50 模擬函式執行過程 總概率精度為20 30 50 100 第一次陣列迴圈,procur 20 假...
php概率計算 php 中獎概率演算法
上次專案中有個 活動,中獎概率演算法整理成一篇筆記 中獎概率演算法 v表示中獎概率,注意其中的v必須為整數,可以將對應的獎項的v設定成0,即意味著該獎項抽中的機率是0,陣列中v的總和 基數 基數越大越能體現概率的準確性。本例中v的總和為100,那麼 特等獎 對應的中獎概率就是1 如果v的總和是100...
PHP指定概率演算法
php指定概率演算法,可用於刮刮卡,大轉盤等 演算法。假設 有乙個二維陣列,記錄了所有本次 的獎項資訊 test arr array a 20,b 30,c 50 a獎概率20 b獎概率30 c獎概率50 模擬函式執行過程 總概率精度為20 30 50 100 第一次陣列迴圈,procur 20 假...