>백엔드 개발 >PHP 튜토리얼 >PHP는 PHP 예제를 공유하는 턴테이블 복권 알고리즘을 실현합니다.

PHP는 PHP 예제를 공유하는 턴테이블 복권 알고리즘을 실현합니다.

jacklove
jacklove원래의
2018-06-26 16:59:452001검색

이 기사에서는 주로 대형 캐러셀 복권 알고리즘의 PHP 구현을 자세히 소개합니다. 관심 있는 친구는 이를 참조할 수 있습니다.

이 기사의 예는 캐러셀 복권 알고리즘의 PHP 구현에 대한 구체적인 코드를 공유합니다. 참고로 구체적인 내용은 다음과 같습니다

1. 보상 배열을 조립합니다

2. 확률을 계산합니다

코드는 다음과 같습니다.

승리 확률 'v'는 백그라운드에서 설정하여 통과할 수 있습니다. 이 방법에서는

정수 전달

function get_gift(){ 
    //拼装奖项数组 
    // 奖项id,奖品,概率
    $prize_arr = array(  
     '0' => array('id'=>1,'prize'=>'平板电脑','v'=>0),  
     '1' => array('id'=>2,'prize'=>'数码相机','v'=>0),  
     '2' => array('id'=>3,'prize'=>'音箱设备','v'=>0),  
     '3' => array('id'=>4,'prize'=>'4G优盘','v'=>5),  
     '4' => array('id'=>5,'prize'=>'10Q币','v'=>0),  
     '5' => array('id'=>6,'prize'=>'空奖','v'=>5),  
    );  
    foreach ($prize_arr as $key => $val) {  
     $arr[$val['id']] = $val['v'];//概率数组  
    }  
    $rid = $this->get_rand($arr); //根据概率获取奖项id  
    $res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项  
    unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项  
    shuffle($prize_arr); //打乱数组顺序  
    for($i=0;$i<count($prize_arr);$i++){  
     $pr[] = $prize_arr[$i][&#39;prize&#39;]; //未中奖项数组 
    }  
    $res[&#39;no&#39;] = $pr; 
    // var_dump($res);

     
    if($res[&#39;yes&#39;]!=&#39;空奖&#39;){ 
      $result[&#39;status&#39;]=1; 
      $result[&#39;name&#39;]=$res[&#39;yes&#39;]; 
    }else{ 
      $result[&#39;status&#39;]=-1; 
      $result[&#39;msg&#39;]=$res[&#39;yes&#39;]; 
    }  
    //return $result; 
    var_dump($result);
  } 

  //计算中奖概率
  function get_rand($proArr) {  
   $result = &#39;&#39;;  
   //概率数组的总概率精度  
   $proSum = array_sum($proArr);  
   // var_dump($proSum);
   //概率数组循环  
   foreach ($proArr as $key => $proCur) {  
    $randNum = mt_rand(1, $proSum); //返回随机整数 

    if ($randNum <= $proCur) {  
     $result = $key;  
     break;  
    } else {  
     $proSum -= $proCur;  
    }  
   }  
   unset ($proArr);  
   return $result;  
  }

렌더링에 주의하세요.

위 내용은 전체 내용입니다. 이 기사가 모든 사람의 학습에 도움이 되기를 바라며, 모든 사람이 PHP More 중국어 웹사이트를 지원하기를 바랍니다.

당신이 관심을 가질 만한 기사:

PHP는 동시 요청을 구현하기 위해 cur_multi를 사용합니다. PHP 기술의 예

PHP 성능 테스트 도구 xhprof 설치 및 사용 방법, 자세한 PHP 기술

PHP 구현은 오류 PHP 기술의 원인을 찾기 위해 strace 메소드를 전달했습니다


위 내용은 PHP는 PHP 예제를 공유하는 턴테이블 복권 알고리즘을 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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