您好,欢迎访问一九零五行业门户网

php抽奖算法

万能的大神们有什么比较好的抽奖算法。
回复内容: 万能的大神们有什么比较好的抽奖算法。
return false
这是我之前写的。网上用流行的是两种算法,概率太高了。只好回归到课本里面的,直接把所有中奖的球和干扰球放到篮子里面,随机抽。
而且抽奖直接抽,无需放回,我们只要再出奖后,奖品如果没了,就直接当成谢谢参与来出奖。
1,'name'=>'苹果电脑','chance'=>1), array('id'=>2,'name'=>'苹果手机','chance'=>2), array('id'=>3,'name'=>'1000元购物卡','chance'=>3), array('id'=>4,'name'=>'300元餐具','chance'=>4), array('id'=>5,'name'=>'100元手机充值卡','chance'=>5) ); $prize_form[0]=array('id'=>0,'name'=>'谢谢参与!'); foreach ($prize as $key => $value) { //格式化数组 $prize_form[$value['id']]=$value; if($value['chance']>0){ $p[$value['id']]=$value['chance']; } } $result=$this->get_rand($p); echo $prize_form[$result]['name']; } /* *奖项的id不得为0,0默认为谢谢参与 *$proarr=array('1'=>'1','2'=>2) **/ private function get_rand($proarr) { //奖项数量 $prize_number=count($proarr); foreach ($proarr as $key => $value) { for($i=0;$i
这个问题比较好解决哈,假设有100个奖品,发放对象也有100个人,对这100个奖品进行编号叫award0-99,对发放对象的100个人进行编号叫person0-99,代码实现如下:
其它类似信息

推荐信息