>  기사  >  백엔드 개발  >  PHP 복권 확률 알고리즘 구현 코드

PHP 복권 확률 알고리즘 구현 코드

高洛峰
高洛峰원래의
2017-02-03 15:54:181605검색

구현 코드:

<?php
/**
 *php 中奖概率算法
 *
 */
function get_zj( $jp ,$glname = &#39;gl&#39;){
    $sum = 0;
    foreach($jp as $k =>$v ){
        $sum += $v[$glname];
    }
  
    $R = rand(1,$sum);//获取随机数
  
    foreach( $jp as $k => $v){
        if( $R <= $v[$glname] ){
            return $v;
        }
        $R = $R - $v[$glname] ;
    }
  
}
  
  
//使用方法
//模拟一个从数据库中读取的 中奖配置  gl 为 中奖的概率 
//例如array( &#39;gl&#39; => 10 , &#39;title&#39; => &#39;一等奖&#39;);的中奖概率 = 10 / (10+20+30+40)
$jp = array();
$jp[] = array( &#39;gl&#39; => 10 , &#39;title&#39; => &#39;一等奖&#39;);
$jp[] = array( &#39;gl&#39; => 20 , &#39;title&#39; => &#39;二等奖&#39;);
$jp[] = array( &#39;gl&#39; => 30 , &#39;title&#39; => &#39;三等奖&#39;);
$jp[] = array( &#39;gl&#39; => 40 , &#39;title&#39; => &#39;未中奖&#39;);
  
  
//调用 中奖概率函数 
//返回中奖 信息数组 例如:array( &#39;gl&#39; => 10 , &#39;title&#39; => &#39;一等奖&#39;);
$zj = get_zj( $jp );
  
//输出数组
var_dump($zj);

사용 방법
데이터베이스에서 읽은 승리 구성 gl을 승리 확률로 시뮬레이션
예: array( 'gl' => 10 , 'title' => '1등상'); 당첨 확률 = 10 / (10+20+30+40)
$jp = array();
$jp[] = array( 'gl' => ; 10 , 'title' => '1등상');
$jp[] = array( 'gl' => 20 , 'title' => '2등상');
$jp[ ] = array( 'gl' => 30 , 'title' => '3등상');
$jp[] = array( 'gl' => 40 , 'title' = > '아닙니다. Winner');

당첨 확률 함수 호출
당첨 정보 배열 반환 예: array( 'gl' => 10 , 'title' => 'First Prize'); 🎜>

PHP 당첨 확률 알고리즘 구현 코드와 관련된 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

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