PHP 룰렛 추첨 알고리즘 공유 실현
흐름:
1.조립 상 배열
2.확률 계산
3.당 첨 상황 복귀
코드 는 다음 과 같 습 니 다:
당 첨 확률'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]['prize']; //
}
$res['no'] = $pr;
// var_dump($res);
if($res['yes']!=' '){
$result['status']=1;
$result['name']=$res['yes'];
}else{
$result['status']=-1;
$result['msg']=$res['yes'];
}
//return $result;
var_dump($result);
}
//
function get_rand($proArr) {
$result = '';
//
$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;
}
효과 그림:추첨 기능 의 실현 에 대해 더 많은 것 을 배우 고 싶 으 시 면 이 주 제 를 참고 하 시기 바 랍 니 다추첨 기능
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.