本文用matlab程序,模拟微信给10个人发红包,设定次数1亿次,统计每个人抢到的红包,最佳手气和最差手气次数,用以分析红包是应该先抢还是后抢?

作者:景因分析

本文用matlab程序,模拟微信给10个人发红包,设定次数1亿次,统计每个人抢到的红包,最佳手气和最差手气次数,用以分析红包是应该先抢还是后抢?

算法解释

网上有人分析微信红包用的方法是两倍均值法,意思即:每个人抢的额度为0.01到总额度除以剩余人数的两倍。本文用此方法来判断,

  1. 假定有10个红包共100元,此时均值为10,第一个人(设定为P1)抢到的值为0.01-20元内任意值。设P1抢到12元;
  2. 此时还剩下9个红包共88元,此时均值为9.77,第二个人P2抢到的值为0.01-19.55元内任意值。设P2抢到3元;
  3. 此时还剩下8个红包共85元,此时均值为10.625,第三个人P3抢到的值为0.01-21.25元内任意值。
  4. 依次计算下去,到第9个人抢完后,剩下钱的全是最后一个人的。

代码实现

本次计算,设定每次发10个红包,共100元。首先生成三个矩阵用以存放红包值、手气最佳次数、手气最差次数。redluckymoney是我能想到红包较好的翻译了

redluckymoney=zeros(100000000,10);%存放每次抢到的红包值
bestlucky=zeros(1,10);%统计每个人手气最佳次数
worstlucky=zeros(1,10);%统计每个人手气最差次数 

再进行计算,先进行内循环,发10个红包,统计手气最佳和手气最差,再进行外循环100000000次。

for n=1:100000000 for i =1:9 redluckymoney(n,i)=rand(1)*((100-sum(redluckymoney(n,:)))/(11-i)*2); end redluckymoney(n,10)=100-sum(redluckymoney(n,:)); [~,maxtemp]=max(redluckymoney(n,:)); %计算手气最佳次数 bestlucky(1,maxtemp)=bestlucky(1,maxtemp)+1; [~,mintemp]=min(redluckymoney(n,:)); %计算手气最差次数 worstlucky(1,mintemp)=worstlucky(1,mintemp)+1;
end 

最后是画图,单次抢到的钱数,如果你的电脑牛X的话,可以放到外循环中,展示动态。但计算速度会大大降低,1亿次计算时间会很长long long long……

bar(redluckymoney(n,:),'FaceColor',[0.8 0.1 0],'EdgeColor',[1 1 0],'LineWidth',1.5);
ylabel('单次抢到红包/元','fontsize',14,'color','b','fontweight','bold');xlabel('参与人','fontsize',14,'color','b','fontweight','bold');
title('单次红包钱数','fontsize',16,'color','b','fontweight','bold'); bar(sum(redluckymoney_sum),'FaceColor',[0.8 0.1 0],'EdgeColor',[1 1 0],'LineWidth',1.5);
ylabel('总共抢到红包/元','fontsize',14,'color','b','fontweight','bold');xlabel('参与人','fontsize',14,'color','b','fontweight','bold');
title('总红包钱数','fontsize',16,'color','b','fontweight','bold'); bar(bestlucky,'FaceColor',[1 1 0],'EdgeColor',[1 0 0],'LineWidth',1.5);
ylabel('手气最佳/次','fontsize',14,'color','b','fontweight','bold');xlabel('参与人','fontsize',14,'color','b','fontweight','bold');
title('手气最佳次数','fontsize',16,'color','b','fontweight','bold'); bar(worstlucky,'FaceColor',[0.5 0.5 0.5],'EdgeColor',[0 0 0],'LineWidth',1.5);
ylabel('手气最差/次','fontsize',14,'color','b','fontweight','bold');xlabel('参与人','fontsize',14,'color','b','fontweight','bold');
title('手气最差次数','fontsize',16,'color','b','fontweight','bold'); 

统计出来,每个人总抢到的钱数如下图,总钱数基本一致,意味着无论先抢到,还是后抢到,经过多次后,抢到的钱是一样的。

总抢到的钱数

手气最佳和手气最差如下图:总体来看,最后抢的两位容易获得手气最佳,也容易获得手气最次差,更有可能是啥也抢不到……

手气最佳次数

手气最差次数

总结

  1. 无论先抢还是后抢,经过多次抢红包后,总金额是一致的,为了防止抢不到,建议还是先抢吧。
  2. 最后面两个人有最高概率成为手气最佳或手气最差。在能保证抢到红包的前提下,后抢有机率成为手气最佳。

第一百二十二期:大数据分析:红包先抢好,还是后抢好相关推荐

  1. 第一百二十六节,JavaScript,XPath操作xml节点

    第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...

  2. 第一百二十九期:阿里内部员工,排查Java问题常用的工具单

    平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮 ...

  3. 第一百二十期:终于有篇看的懂的B树文章了!

    索引,相信大多数人已经相当熟悉了,很多人都知道 MySQL 的索引主要以 B+ 树为主,但是要问到为什么用 B+ 树,恐怕很少有人能把前因后果讲述完整.本文就来从头到尾介绍下数据库的索引. 作者:安静 ...

  4. nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令

    点击上方"蓝字"关注我们吧! Liunx系统启动默认为字符界面,一般不会启用图像界面,所以对命令行的熟练程度能更加高效.便捷的管理Liunx服务器. 这节课向读者介绍Liunx系统 ...

  5. 第一百五十二期:白话Entity Framework Core数据验证

    数据验证是每个项目必须存在的,可以防止不符合系统规范的数据进入系统进而导致系统不稳定甚至崩溃.我们可以自己编写代码进行验证,但是这样一方面代码量较大,另一方面有可能验证代码覆盖不完全.但是在 Enti ...

  6. 第一百二十五期:程序员的自我救赎,使用Python开发性格分析工具

    如此不均衡的贫富差距,各行业的领导者如何能管理好公司,让员工们既努力产出,又能安于现状呢?每个领导者必学的一门课程就是职场心理学.只有你充分了解员工心理与对应的行为表现,才能从容的掌控各类型的人员,从 ...

  7. 圣墟 第一百二十九章 异类直播

    "真遗憾,没有找到五色土,不知道泰山什么时候能够真正复苏,所有古树都绽放花香." 楚风坐在机舱中,透过玻璃窗看着夜空中的景色,这里仿佛离星辰格外近,一颗又一颗熠熠如钻石. 他的确很 ...

  8. 第一百二十九天 how can I坚持

    好奇怪啊,今天买了个手机号订单没下成功,后来手机号找不到了.或许终究就不属于我吧. 还有.放下了. 还有好累.好想睡觉. 努力. 狂野飙车,dota,东升八家郊野公园. 今天搞定两件事,一是工作,二是 ...

  9. 第一百三十二期:MySQL系列:一句SQL,MySQL是怎么工作的?

    当我们在mysql窗口或者数据库连接工具中输入一句sql后,我们就可以获取到想要的数据,这中间MySQL到底是怎么工作的呢? 作者:Java架构学习交流 对于MySQL而言,其实分为客户端与服务端. ...

最新文章

  1. 快手刘霁:AI基础能力决定每个公司AI的迭代和落地效率丨MEET2020
  2. POJ 3922 A simple stone game(K倍减法游戏)
  3. 频率计设计——电路部分
  4. Shell脚本编程----变量的使用
  5. 新的博客 bincoding.github.io
  6. bagging算法_集成算法——三个“臭皮匠”级算法优于一个“诸葛亮”级算法
  7. 什么时候用synchronized
  8. c语言堆栈基本代码入栈出栈_C/C++语言栈的出栈入栈操作实现(完整代码)
  9. php重定向在header头加参数,php的header重定向的域名参数后边可以加路由吗?
  10. 对象的持久化和序列化
  11. mysql hibernate 乱码_mysql hibernate 乱码
  12. 如何检索某学术会议全部论文?
  13. 360隐私保护器直指腾讯QQ 360真的发飙了,百度旁观!
  14. CTF .swp文件泄露 MD5扩展攻击 [What is hash!]
  15. android虚拟按键
  16. [转]gcc -ffunction-sections -fdata-sections -Wl,–gc-sections 参数详解
  17. “偶遇” 爱可生 与 MYSQL 大型应用
  18. Native xdp hook 点
  19. Chatbot项目的剖析
  20. [cesium] 基于Cesium的动态泛光效果示例

热门文章

  1. Altera 速度等级
  2. qwt自定义时间标尺TimeScale
  3. U盘流畅运行linux发行版,做各种linux发行版的启动U盘方法
  4. easyexcel 无模板写入_关于EasyExcel 的一些生成模板,导入导出的使用心得(优化版)...
  5. wordpress后台添加子菜单 add_submenu_page()
  6. ubuntu所有php扩展php-7.0扩展列表
  7. 2018.2.2PHPstrom破解版
  8. 【 Grey Hack 】加强版nmap
  9. VC6 + OpenCV1.0实现图片缩放显示
  10. ant中的loading按钮使用