php寫的中獎程式碼
阿新 • • 發佈:2018-11-12
<?php
//設定中獎概率
$prize_arr = array(
0=>array( 'id'=>1,'prize'=>'現金500W','v'=>1 ), //概率為1/200
1=>array( 'id'=>2,'prize'=>'iphone7','v'=>5 ),
2=>array( 'id'=>3,'prize'=>'耐克跑鞋','v'=>10 ),
3=>array( 'id'=>4,'prize'=>'魔聲耳機','v'=>24 ),
4=>array( 'id'=>5,'prize'=>'藍芽音響','v'=>60 ),
5=>array( 'id'=>6,'prize'=>'現金1元','v'=>100000 )
);
/*
16 * 對陣列進行處理
17 */
foreach( $prize_arr as $k => $v ){
//使用新陣列item
$item[$v['id']] = $v['v'];
}
function get_rand($item){
$num = array_sum($item);//計算出分母200
foreach( $item as $k => $v ){
$rand = mt_rand(1, $num);//概率區間(整數) 包括1和200
/*
43 *這個演算法很666
44 */
if( $rand <= $v ){
//迴圈遍歷,當下標$k = 1的時候,只有$rand = 1 才能中獎
$result = $k;
echo $rand.'--'.$v;
break;
}else{
//當下標$k=6的時候,如果$rand>100 必須$rand < = 100 才能中獎 ,那麼前面5次迴圈之後$rand的概率區間= 200-1-5-10-24-60 (1,100) 必中1塊錢
$num-=$v;
echo '*'.$rand.'*'." "." "." ";
}
}
return $result;
}
var_dump(get_rand($item));
?>
//設定中獎概率
$prize_arr = array(
0=>array( 'id'=>1,'prize'=>'現金500W','v'=>1 ), //概率為1/200
1=>array( 'id'=>2,'prize'=>'iphone7','v'=>5 ),
2=>array( 'id'=>3,'prize'=>'耐克跑鞋','v'=>10 ),
3=>array( 'id'=>4,'prize'=>'魔聲耳機','v'=>24 ),
4=>array( 'id'=>5,'prize'=>'藍芽音響','v'=>60 ),
5=>array( 'id'=>6,'prize'=>'現金1元','v'=>100000 )
);
/*
16 * 對陣列進行處理
17 */
foreach( $prize_arr as $k => $v ){
//使用新陣列item
$item[$v['id']] = $v['v'];
}
function get_rand($item){
$num = array_sum($item);//計算出分母200
foreach( $item as $k => $v ){
$rand = mt_rand(1, $num);//概率區間(整數) 包括1和200
/*
43 *這個演算法很666
44 */
if( $rand <= $v ){
//迴圈遍歷,當下標$k = 1的時候,只有$rand = 1 才能中獎
$result = $k;
echo $rand.'--'.$v;
break;
}else{
//當下標$k=6的時候,如果$rand>100 必須$rand < = 100 才能中獎 ,那麼前面5次迴圈之後$rand的概率區間= 200-1-5-10-24-60 (1,100) 必中1塊錢
$num-=$v;
echo '*'.$rand.'*'." "." "." ";
}
}
return $result;
}
var_dump(get_rand($item));
?>