php当選確率アルゴリズムは、カード、大回転盤などの抽選アルゴリズムに使用できます.
2178 ワード
php当選確率アルゴリズムは、カード、大回転盤などの抽選アルゴリズムに使用できます.使い方は簡単です.
$proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
/*
*
* , ,
* id ,prize ,v 。
* v , v 0, 0,
* v ( ), 。
* v 100, 1%,
* v 10000, 。
*
*/
$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),
);
/*
* ,PHP ,
* get_rand id。
* $res['yes'] ,
* $res['no'] ,
* json 。
*/
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}
$rid = get_rand($arr); // id
$res['yes'] = $prize_arr[$rid-1]['prize']; //
unset($prize_arr[$rid-1]); // ,
shuffle($prize_arr); //
for($i=0;$i