码迷,mamicode.com
首页 > 编程语言 > 详细

抽奖概率算法

时间:2019-04-15 19:52:26      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:相机   git   ros   hub   logs   charset   数组   href   type   

<?php
header("Content-Type: text/html; charset=UTF-8");
function dump($arr){
    echo <pre>.print_r($arr,TRUE).</pre>;
}
/*概率算法
proArr array(100,200,300,400)
*/
function get_rand($proArr) { 
    $result = ‘‘;  
    $proSum = array_sum($proArr);   
    foreach ($proArr as $key => $proCur) { 
        $randNum = mt_rand(1, $proSum); 
        if ($randNum <= $proCur) { 
            $result = $key; 
            break; 
        } else { 
            $proSum -= $proCur; 
        }         
    } 
    unset ($proArr);  
    return $result; 
}
/*
获取中奖
*/
function  get_prize(){
$prize_arr = array( 
    array(id=>1,prize=>平板电脑,v=>1), 
    array(id=>2,prize=>数码相机,v=>1), 
    array(id=>3,prize=>音箱设备,v=>1), 
   array(id=>4,prize=>4G优盘,v=>1), 
   array(id=>5,prize=>10Q币,v=>1), 
   array(id=>6,prize=>下次没准就能中哦,v=>95), 
);
foreach ($prize_arr as $key => $val) { 
    $arr[$val[id]] = $val[v]; 
} 
$ridk = get_rand($arr); //根据概率获取奖项id 
$res[yes] = $prize_arr[$ridk-1][prize]; //中奖项 
unset($prize_arr[$ridk-1]); //将中奖项从数组中剔除,剩下未中奖项 
shuffle($prize_arr); //打乱数组顺序 
for($i=0;$i<count($prize_arr);$i++){ 
    $pr[] = $prize_arr[$i][prize]; 
} 
$res[no] = $pr;
return $res;
}
dump(get_prize());

博客园参考文章

github参考源码

抽奖概率算法

标签:相机   git   ros   hub   logs   charset   数组   href   type   

原文地址:https://www.cnblogs.com/webclz/p/10712205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!