位置: 编程技术 - 正文

大家在抢红包,程序员在研究红包算法(大家在抢红包怎么回复)

编辑:rootadmin

推荐整理分享大家在抢红包,程序员在研究红包算法(大家在抢红包怎么回复),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:大家在抢红包英语,大家都抢过红包吧,大家在抢红包怎么说,大家抢红包高兴怎么说,大家在抢红包怎么说,大家在抢红包英语,大家在抢红包英语,大家在抢红包怎么说,内容如对您有帮助,希望把文章链接给更多的朋友!

除夕全天微信用户红包总发送量达到.1亿次,摇一摇互动量达到亿次,红包峰值发送量为8.1亿次/分钟。

抛开微信红包的市场价值不谈,红包本身的算法也引发了热议,由于官方没有给出明确的说法,各家也是众说纷纭,小编下面也为大家带来几种分析。

首先看看数据分析帝

大多数人都做出自己的猜测,这也是在不知道内部随机算法的时候的唯一选择,但是大多数人没有给出自己亲自的调查结果。这里给出一份样本的调查抽样样本数据,并提出自己的猜测。

1. 钱包钱数满足截尾正态随机数分布。大致为在截尾正态分布中取随机数,并用其求和数除以总价值,获得修正因子,再用修正因子乘上所有的随机数,得到红包价值。

这种分布意味着:低于平均值的红包多,但是离平均值不远;高于平均值的红包少,但是远大于平均值的红包偏多。

图1. 钱包价值与其频率分布直方图及其正态拟合

但看分布直方图并不能推出它符合正态分布,但是考虑到程序的简洁性和随机数的合理性,这是最合乎情理的一种猜测。越是后面的钱包,价值普遍更高

图2. 钱包序列数与其价值关系曲线

从图2中的线性拟合红线可以看到,钱包价值的总体变化趋势是在慢慢增大,其变化范围大约是一个绿色虚线上下界划出的“通道”。(曲线可以被围在这么一个正合乎常规的“通道”中,也从侧面反映了规律1的合理性,说明了并不是均匀分布的随机数)从另一个平均数的图中也可以看出这一规律。

图3. 平均数随序列数的变化曲线

在样本中,价值的钱包被分成份,均值为。然而在图3中我们可以看到在最后一个钱包之前,平均数一直低于,这就说明了一开始的钱包价值偏低,一直被后期的钱包价值拉着往上走,后期的钱包价值更高。

3. 当然平均数的图还可以透露出另一个规律,那就是最后的那一个人往往容易走运抽得比较多。因为最后那一个人是钱包剩下多少就拿多少的,而之前所有人的平均数 都低于,所以至少保证了最后一个人会高于平均值。在本样本中,号钱包抽到,而最后一份钱包抽到。

综上,根据样本猜测:

1. 抽到的钱大多数时候跟别人一样少,但一旦一多,就容易多很多。2. 越是抽后面的钱包,钱越容易多。 3. 最后一个人往往容易撞大运。

点评:这种明显很实际有差异,小编每次不管什么时候抢都是几毛钱。

第二位同学写了一个简单python 代码

据观察,红包分钱满足以下几点:

1.不会有人拿不到钱

2.不会提前分完

3.钱的波动范围很大

红包在一开始创建的时候,分配方案就订好了。抢红包的时候,不过是挨个pop up而已。

因此 python 代码如下:

不过上述算法还有两个小问题:

1.浮点数精度问题

2.边界值的处理

第三位同学按照网上流传的python写了一个java的版本

第四位同学的这种算法看起来非常科学。

他认为:

1、每个人都要能够领取到红包;

大家在抢红包,程序员在研究红包算法(大家在抢红包怎么回复)

2、每个人领取到的红包金额总和=总金额;

3、每个人领取到的红包金额不等,但也不能差的太离谱,不然就没趣味;

4、算法一定要简单,不然对不起腾讯这个招牌;

正式编码之前,先搭建一个递进的模型来分析规律

设定总金额为元,有N个人随机领取:

N=1

则红包金额=X元;

N=2

为保证第二个红包可以正常发出,第一个红包金额=0.至9.之间的某个随机数

第二个红包=-第一个红包金额;

N=3

红包1=0.至0.之间的某个随机数

红包2=0.至(-红包1-0.)的某个随机数

红包3=-红包1-红包2

……

输入一看,波动太大,这数据太无趣了!

第1个红包:7. 元,余额:2. 元

第2个红包:1.9 元,余额:0. 元

第3个红包:0. 元,余额:0. 元

第4个红包:0. 元,余额:0. 元

第5个红包:0. 元,余额:0. 元

第6个红包:0. 元,余额:0. 元

第7个红包:0. 元,余额:0. 元

第8个红包:0. 元,余额:0 元

改良一下,将平均值作为随机安全上限来控制波动差

输出结果见下图

第1个红包:0. 元,余额:9. 元

第2个红包:1. 元,余额:8. 元

第3个红包:0. 元,余额:8. 元

第4个红包:0. 元,余额:7. 元

第5个红包:1. 元,余额:5. 元

第6个红包:1. 元,余额:3. 元

第7个红包:2. 元,余额:0. 元

第8个红包:0. 元,余额:0 元

小结:

小编觉得这完全可以理解成一个红包引发的血案,小编仅仅列举了几个,还有一些工程学的同学直接抛出了数学模型、离散函数等等,但是无论算法是简单还是复杂,玩的开心就够了。

php图片水印添加,压缩,剪切的封装类实现 php对图片文件的操作主要是利用GD库扩展。当我们频繁利用php对图片进行操作时,会自然封装很多函数,否则会写太多重复的代码。当有很多对图片的相

四个常见html网页乱码问题及解决办法 上周同事在做网页时,遇到网页打开之后都是乱码,同事很迷茫了,不知道该怎么解决,下面是小编抽时间把比较常见的html网页乱码问题及解决办法整

php验证码实现代码(3种) 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。好吧,其实是没有事情干,但是又不想浪费时间

标签: 大家在抢红包怎么回复

本文链接地址:https://www.jiuchutong.com/biancheng/284404.html 转载请保留说明!

上一篇:php基础设计模式大全(注册树模式、工厂模式、单列模式)(php设计模式六大原则)

下一篇:php图片水印添加,压缩,剪切的封装类实现(php图片加文字水印)

  • 2020小规模纳税人印花税怎么算
  • 附加税退税申请书怎么写
  • 购买理财产品现金流量处理怎么做?
  • 企业维修厂房购进材料怎样做账务处理?
  • 纳税人发生纳税义务,未按照规定
  • 分项结转分步法例题及分录
  • 营改增的会计分录
  • 如何确定增值税以旧换新方式下销售货物的销售额
  • 人防设施建设费
  • 银行存款缴税
  • 母公司代付子公司费用的委托书
  • 分公司年报怎么查
  • 房屋租赁发票需要什么资料
  • 公司打白条
  • 付临时工工资计入什么科目
  • u盘的内存卡怎么装
  • 关闭客户端快捷键
  • 社保公积金代缴
  • 总承包简易计税
  • bash是什么命令
  • 深度科技win10
  • 公司出售已经提完折旧的机器
  • 汇付的注意事项有哪些内容
  • 资产减值准备为什么在贷方
  • npm命令不存在
  • 材料退款会计分录
  • 个体工商户需要报哪些税
  • 生产企业可以抵扣进项税的
  • 制造业工资计提
  • 已经认证抵扣的发票怎么做账
  • 处置子公司的方式
  • cobit框架
  • 微信php开发教程
  • 财务的几张报表
  • 关系代数关系运算
  • pyqt5如何安装
  • 预付采购材料款60000元
  • 微擎框架安装教程
  • 出口抵减内销产品应纳税额怎么结转
  • 冲回上月暂估入账的商品会计分录
  • 行政单位核销其他应付款分录
  • 会计科目借贷方向图表
  • 绿化公司属于哪个行业
  • 开票系统在哪
  • 留抵税额可以保留几年
  • 不含税货款要开发票怎么弄
  • 什么叫利得
  • 员工意外伤害险入什么会计科目
  • 现金流量表的主要项目
  • 税种认定怎么操作
  • 接受捐赠的固定资产按什么入账
  • 未开票收入怎么申报增值税
  • 投资折价会计处理
  • 收到商业汇票怎么入账
  • 预付卡销售和充值怎么做账
  • 装饰公司收到的礼品
  • 三证合一后还有纳税人资格证吗
  • 融资租入固定资产属于本企业资产
  • 资产减值损失怎么计提
  • mysql mod
  • mysql预编译原理
  • ubuntu功能
  • window10系统电脑配置
  • win7系统打不开浏览器
  • xp桌面浏览器图标不见了
  • win10如何删除windows账户
  • win10怎么安装java?win10系统安装java的方法
  • g++编译debug
  • react 技巧
  • OpenGL Tips: 在Visual C++中调用FreeGLUT
  • jquery的实现原理
  • javascript ie
  • 显示随机数
  • 在windows 10中
  • js页面点击怎么随机生成图片
  • [推荐]抖音上那些好看的视频和有才的帐号
  • ApplicationId与PackageName的区别
  • twist python
  • 营改增后如何计算税金
  • 国家税务总局办税指南
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设