>  기사  >  백엔드 개발  >  승리를 달성하기 위한 PHP 예제 코드

승리를 달성하기 위한 PHP 예제 코드

小云云
小云云원래의
2018-03-03 13:15:291724검색

이 기사는 주로 승리를 달성하기 위한 PHP의 예제 코드를 공유합니다. 모든 사람에게 도움이 되기를 바랍니다.

<?php 
//设置中奖概率


     $prize_arr = array(
  
      0=>array( &#39;id&#39;=>1,&#39;prize&#39;=>&#39;现金500W&#39;,&#39;v&#39;=>1 ), //概率为1/200
      1=>array( &#39;id&#39;=>2,&#39;prize&#39;=>&#39;iphone7&#39;,&#39;v&#39;=>5 ),  
      2=>array( &#39;id&#39;=>3,&#39;prize&#39;=>&#39;耐克跑鞋&#39;,&#39;v&#39;=>10 ),
      3=>array( &#39;id&#39;=>4,&#39;prize&#39;=>&#39;魔声耳机&#39;,&#39;v&#39;=>24 ),
      4=>array( &#39;id&#39;=>5,&#39;prize&#39;=>&#39;蓝牙音响&#39;,&#39;v&#39;=>60 ),
      5=>array( &#39;id&#39;=>6,&#39;prize&#39;=>&#39;现金1元&#39;,&#39;v&#39;=>100000 )
    );
 /*
16  * 对数组进行处理
17  */


foreach( $prize_arr as $k => $v ){
     //使用新数组item
    $item[$v[&#39;id&#39;]] = $v[&#39;v&#39;]; 
    
}
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.&#39;--&#39;.$v;
          break;
      }else{
           //当下标$k=6的时候,如果$rand>100 必须$rand < = 100 才能中奖 ,那么前面5次循环之后$rand的概率区间= 200-1-5-10-24-60 (1,100) 必中1块钱
          $num-=$v;
          echo &#39;*&#39;.$rand.&#39;*&#39;."&ensp;"."&ensp;"."&ensp;";
       }
     }
     return $result;
 }
 var_dump(get_rand($item));
 ?>

관련 추천:
php의 당첨 알고리즘에 대한 자세한 설명

복권 프로그램에서 당첨 확률 알고리즘을 구현하는 PHP의 예

당첨 확률 알고리즘 기능을 구현하는 PHP 아이디어 분석

위 내용은 승리를 달성하기 위한 PHP 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.