当前位置:Gxlcms > PHP教程 > php实现中奖的实例代码

php实现中奖的实例代码

时间:2021-07-01 10:21:17 帮助过:3人阅读

本文主要和大家分享php实现中奖的实例代码,希望能帮助到大家。

<?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.'*'."&ensp;"."&ensp;"."&ensp;";
       }
     }
     return $result;
 }
 var_dump(get_rand($item));
 ?>

相关推荐:
php中奖算法详解

php实现抽奖程序中奖概率算法的示例

php实现中奖概率算法函数的思路分析

以上就是php实现中奖的实例代码的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行