首页 > 开发 > PHP > 正文

PHP大转盘中奖概率算法与示例代码

2024-05-04 22:00:06
字体:大 中 小
来源:转载
供稿:网友

大转盘是最近很多线上网动中一个比较有意思的东西了,下面我们来看看这个大转盘中奖概率算法与例子,希望对各位有帮助,近日工作中有一项目,APP客户端有大转盘抽奖,具体如何抽奖当然在我们服务端实现洛,下面和大家简单分享一下实现代码:

  1. header("Content-type: text/html; charset=utf-8"); 
  2. $prize_arr = array( 
  3. '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), 
  4. '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), 
  5. '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), 
  6. '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), 
  7. '4' => array('id'=>5,'prize'=>'10Q币','v'=>22), 
  8. '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50), 
  9. );  //开源软件:Vevb.com 
  10.  
  11. $actor = 100; 
  12.  
  13. foreach ($prize_arr as $v) { 
  14. $arr[$v['id']] = $v['v']; 
  15. } 
  16. foreach ($arr as &$v) { 
  17. $v = $v*$actor; 
  18. } 
  19. asort($arr); 
  20. $sum = array_sum($arr);   //总概率 
  21.  
  22. $rand = mt_rand(1,$sum); 
  23.  
  24. $result = '';    //中奖产品id 
  25.  
  26. foreach ($arr as $k => $x) 
  27. { 
  28. if($rand <= $x) 
  29. { 
  30. $result = $k; 
  31. break; 
  32. } 
  33. else 
  34. { 
  35. $rand -= $x; 
  36. } 
  37. } 
  38. $res['yes'] = $prize_arr[$result-1]['prize']; //中奖项 
  39. print_r($res);

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表