2019独角兽企业重金招聘Python工程师标准>>>

<?php
/* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内,  * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。 * 这样 筛选到最终,总会有一个数满足要求。 * 就相当于去一个箱子里摸东西, * 第一个不是,第二个不是,第三个还不是,那最后一个一定是。 * 这个算法简单,而且效率非常 高, * 关键是这个算法已在我们以前的项目中有应用,尤其是大数据量的项目中效率非常棒。 */
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;
}   /* * 奖项数组 * 是一个二维数组,记录了所有本次抽奖的奖项信息, * 其中id表示中奖等级,prize表示奖品,v表示中奖概率。 * 注意其中的v必须为整数,你可以将对应的 奖项的v设置成0,即意味着该奖项抽中的几率是0, * 数组中v的总和(基数),基数越大越能体现概率的准确性。 * 本例中v的总和为100,那么平板电脑对应的 中奖概率就是1%, * 如果v的总和是10000,那中奖概率就是万分之一了。 *  */
$prize_arr = array(   '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1),   '1' => array('id'=>2,'prize'=>'数码相机','v'=>5),   '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),   '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12),   '4' => array('id'=>5,'prize'=>'10Q币','v'=>22),   '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50),
);   /* * 每次前端页面的请求,PHP循环奖项设置数组, * 通过概率计算函数get_rand获取抽中的奖项id。 * 将中奖奖品保存在数组$res['yes']中, * 而剩下的未中奖的信息保存在$res['no']中, * 最后输出json个数数据给前端页面。 */
foreach ($prize_arr as $key => $val) {   $arr[$val['id']] = $val['v'];
}
$rid = 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;
print_r($res);
?>

转载于:https://my.oschina.net/u/2299514/blog/546543

微信大转盘实现 逻辑相关推荐

  1. PHP jQuery微信大转盘抽奖源代码分享

    微信大转盘抽奖-jQuery+PHP实现,发现很多转盘抽奖,都实现了前台部分,大部分都使用了HTML5技术,但是后台自己调整抽奖几率不方便,索性自己收集资料,在一个转盘抽奖的基础上,增加了PHP部分代 ...

  2. asp大转盘抽奖程序代码微信大转盘asp版源码

    昨天接到一个客户需求让帮忙找个asp的微信大转盘代码,我找遍全网也没找到有asp做的微信大转盘,网上基本上全是php做的大转盘,没办法受客户所托,昨晚给写了一个asp大转盘代码程序,后台设置奖项,每天 ...

  3. Canvas实现微信大转盘抽奖代码

    Canvas实现微信大转盘抽奖代码,canvas结合jquery实现的一款大转盘抽奖代码,奖品图片均由canvas绘制,可自定义奖项. jquery抽奖微信大转盘jquery抽奖转盘微信抽奖源代码微信 ...

  4. jQuery+PHP实现微信大转盘抽奖 v1.0

    微信大转盘抽奖-jQuery+PHP实现,发现很多转盘抽奖,都实现了前台部分,大部分都使用了HTML5技术,但是后台自己调整抽奖几率不方便,索性自己收集资料,在一个转盘抽奖的基础上,增加了PHP部分代 ...

  5. .net实现微信大转盘

    本人参考网上一个php微信大转盘案例修改了一个.net版本的微信大转盘. 原php微信大转盘教程网址: 幸运大转盘-Jquery_PHP实现的抽奖程序(上)http://www.helloweba.c ...

  6. html5微信预约挂号源码,微信大转盘html5代码

    [实例简介] 微信大转盘html5代码 [实例截图] [核心代码] $(function(){window.requestAnimFrame=(function(){return window.req ...

  7. 产品经理的金字塔之旅---抽奖大转盘产品逻辑

    抽奖大转盘产品逻辑 作为一个好的活动推广,抽奖大转盘这一活动往往是必不可少的.但是之前作为一个用户角度单纯的只是希望自己可以中奖,根本不会从产品的角度去思考这一产品逻辑,现作为一名产品经理才明白并不是 ...

  8. 微信大转盘 【案例源码】提供

    现在很多网站都有抽奖活动,今天写下转盘抽奖,抽奖插件的手记,希望对您有用. 参与了微一热的活动大转盘开发,具体效果可以看官网演示:http://www.weiyr.com/dzp/info 以下为案例 ...

  9. 微信大转盘 java_[Java教程]使用CSS3+jquery.js 实现微信抽奖转盘效果

    [Java教程]使用CSS3+jquery.js 实现微信抽奖转盘效果 0 2014-03-19 02:00:24 上次发表了一篇 微信抽奖转盘活动-效果源码分析 最近想起了刚接到这个项目时第一时间脑 ...

最新文章

  1. 你拿什么保护我的版权(写在中移动MM商用之前)
  2. zoj-What day is that day?
  3. 来自开发者的点赞 · 网易云信揽获三大技术奖项
  4. python os.urandom 安全_python SystemRandom/os.urandom总是有足够的熵来获得良好的加密
  5. 【原创】linux 下远程连接windows桌面
  6. 2数据库表增加一个字段_14个实用的数据库设计技巧!
  7. pandas分组计算平均值_pandas索引,分组计算
  8. POST 一张 图像的调试来认识 http post
  9. Feign 重试解析
  10. 个人博客网站搭建详细视频教程和源码
  11. 软件测试的六大测试质量标准
  12. 解决一例:“无法删除文件,无法读源文件或磁盘”
  13. c#的特性(Attribute、Obsolete、Conditional)
  14. 象棋软件新霸主诞生,旋风绝杀名手,再次夺冠,一统江湖了
  15. 前端不让浏览器自动填充账号密码
  16. python和c语言哪个更难学深_c语言和python先学哪个比较简单
  17. ez-wifibroadcast 学习1
  18. 细述个人建站那点心酸往事
  19. 江苏财经职业技术学校计算机专业怎么样,江苏财会职业学院好不好?排名怎么样评价如何...
  20. 数理统计学(Mathematic Statistics)的基本概念

热门文章

  1. 微商引流的核心是什么?微商引流的三大核心关键,让加人不再是难题
  2. python爬知网全文期刊数据库_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...
  3. 关于智慧食堂现场刷卡设备替换方案的研究
  4. my_print_defaults: [Warning] World-writable config file ‘/usr/local/mysql/my.cnf‘ is ignored.
  5. 在线测试识别电机参数
  6. android蓝光原盘播放软件,安卓系统真的拥有完美的蓝光原盘菜单导航吗?我来测试下...
  7. 知识产权(零)——专利检索概论
  8. 荧光标记氨基酸:荧光标记DL-天门冬氨酸,荧光标记甘氨酸-DL-天冬氨酸,DL aspartic acid labeled
  9. 帕拉迪统一安全管理与综合审计系统解决方案
  10. Python表白代码合集,让你过年前找到对象