根据奖品概率计算获取的奖品想法
$arr = array(
'a1' => 1,
'a2' => 2,
'a3' => 3,
'a4' => 4
);
$set = array();
for($i = 0 ;$i<=100000;$i++){
$set[] = getPrizeKey($arr);
}
var_dump(array_count_values($set));
function getPrizeKey($weightMap){
$sum = array_sum($weightMap);
$low = 0;
$rand = rand(1,$sum);
foreach($weightMap as $key => $weight){
if($rand>$low && $rand<= $low+$weight){
return $key;
}
$low = $low+$weight;
}
}
浙公网安备 33010602011771号