java大转盘抽奖概率算法_大转盘抽奖概率算法
生活随笔
收集整理的這篇文章主要介紹了
java大转盘抽奖概率算法_大转盘抽奖概率算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大轉盤方式的抽獎是經常見的,,最近在做了一個抽獎的功能,其中最重要的就是概率,概率的算法大同小異,,為保證每個獎品都可抽完,下面就是我寫一個算法
function getRand(array $products,$flage){
//1、計算總中獎概率
$chanceSum = array_sum($arr);//所有獎品的概率總和,
//2、計算每個獎品的中獎率
foreach($prducts as $value){
if($value['chance']<=0)//概率值小于等于0。返回false表示未中獎
{
continue;
}else{
$randNum = mt_rand(1,$chanceSum?);//隨機抽取
if($randNum <=$value['chance']){ //循環獲取到的概率小于等于隨機抽取到的概率表示中獎
return $value;
}else{//此時概率發生變化(其中某個獎品的庫存為0時,總的概率減去獎品為0的概率)
if($flag){
$chanceSum - = $value['chance'];
}
}
}
}
return false;
}
總結
以上是生活随笔為你收集整理的java大转盘抽奖概率算法_大转盘抽奖概率算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Merge sort(归并排序)
- 下一篇: 线性代数公式合集