红包随机分配问题php,自己写仿微信红包的随机分配,为什么平均数差距这么大?...
这几天比较闲,自己研究了一下微信红包的算法。用度娘查了一下,看到了一个官方的回答:“随机,额度在0.01和(剩余平均值2)之间。”也就是说,每个人拿红包的时候,生成的金额都是即时计算,这样可以减少内存的占用,而每个红包的额度是在0.01和(剩余平均值2)之间,就是说,如果100块5个红包,第一个红包的钱会在0.01到40之间,但玩过抢红包的人都知道,这是不对的,第一个抢,拿超过剩余平均值*2是很平常的事。
而我自己在没看到这个回答之前,自己的设想是发红包后就已经将金额分配好,然后等人来打开红包。
public function index($money,$count){
if($count==1){
echo $money;exit;
}
$max=$money*100;
if($max';
}
return $data;
}
我的思路是,红包总金额金额就等于一条直线的长度,然后在直线上随机放n-1个点,点与点之间的距离就等于每个红包的金额。一开始,我以为,这样会相对平均,然后我测试了100块发10个红包,测试了一万次,结果发现
而且这还是我打乱点与点长度排序后所得出来的结果,
如果没打乱之前的结果时这样,相差更大。
明显可以看出,离平均,差好远,是我的思路本来就是错误的吗?
回复内容:
这几天比较闲,自己研究了一下微信红包的算法。用度娘查了一下,看到了一个官方的回答:“随机,额度在0.01和(剩余平均值2)之间。”也就是说,每个人拿红包的时候,生成的金额都是即时计算,这样可以减少内存的占用,而每个红包的额度是在0.01和(剩余平均值2)之间,就是说,如果100块5个红包,第一个红包的钱会在0.01到40之间,但玩过抢红包的人都知道,这是不对的,第一个抢,拿超过剩余平均值*2是很平常的事。
而我自己在没看到这个回答之前,自己的设想是发红包后就已经将金额分配好,然后等人来打开红包。
public function index($money,$count){
if($count==1){
echo $money;exit;
}
$max=$money*100;
if($max';
}
return $data;
}
我的思路是,红包总金额金额就等于一条直线的长度,然后在直线上随机放n-1个点,点与点之间的距离就等于每个红包的金额。一开始,我以为,这样会相对平均,然后我测试了100块发10个红包,测试了一万次,结果发现
而且这还是我打乱点与点长度排序后所得出来的结果,
如果没打乱之前的结果时这样,相差更大。
明显可以看出,离平均,差好远,是我的思路本来就是错误的吗?
看看这里的红包算法合你的要求不
https://github.com/qieangel2013/yaf
微信金额是拆的时候实时算出出来的,采用的是纯内存计算,不需要预算空间存储。采取实时计算金额的考虑:预算需要占存储,实时效率很高。
这个答案分析的不错你可以看下http://coderroc.com/article/%E6%95%B0%E5%AD%A6%E5%92%8C%E7%AE%97%E6%B3%95/%E5%BE%AE%E4%BF%A1%E7%BA%A2%E5%8C%85%E9%9A%8F%E6%9C%BA%E7%AE%97%E6%B3%95%E5%88%9D%E6%8E%A2.html
相关标签:php
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
红包随机分配问题php,自己写仿微信红包的随机分配,为什么平均数差距这么大?...相关推荐
- 红包指定分配金额php,php仿微信红包分配算法的实现方法_PHP
本文实例讲述了php仿微信红包分配算法的实现方法.分享给大家供大家参考,具体如下: /** * 红包分配:把一定金额随机分配给指定人数 * * @param int $money 用于分配的金额 * ...
- 红包的分配算法php,php仿微信红包分配算法的实现方法,红包算法
php仿微信红包分配算法的实现方法,红包算法 本文实例讲述了php仿微信红包分配算法的实现方法.分享给大家供大家参考,具体如下: /** * 红包分配:把一定金额随机分配给指定人数 * * @para ...
- 红包的分配算法php,php仿微信红包分配算法的实现方法,红包算法_PHP教程
php仿微信红包分配算法的实现方法,红包算法 本文实例讲述了php仿微信红包分配算法的实现方法.分享给大家供大家参考,具体如下: /** * 红包分配:把一定金额随机分配给指定人数 * * @para ...
- php 红包算法教程,php仿微信红包分配算法的实现方法
php仿微信红包分配算法的实现方法 本文实例讲述了php仿微信红包分配算法的实现方法.分享给大家供大家参考,具体如下: /** * 红包分配:把一定金额随机分配给指定人数 * * @param int ...
- Android 仿微信红包动画 平移动画
Android 仿微信红包动画 平移动画 先看效果图: 简单思路: 先找好素材,一张红包封面和 "开"这个图片,先用ps将红包图片P成两部分,两个椭圆的样子."开&quo ...
- php+仿微信发红包+负数,php仿微信红包分配算法的实现方法
本文实例讲述了php仿微信红包分配算法的实现方法.分享给大家供大家参考,具体如下: /** * 红包分配:把一定金额随机分配给指定人数 * * @param int $money 用于分配的金额 * ...
- php 仿微信发红包 负数,php仿微信红包分配算法的实现方法
本文实例讲述了php仿微信红包分配算法的实现方法.分享给大家供大家参考,具体如下: /** * 红包分配:把一定金额随机分配给指定人数 * * @param int $money 用于分配的金额 * ...
- 如何用html写出微信红包界面,问题详情
1.为什么其他人可以领WiFi红包,而我没法领取?本次活动仅支持腾讯手机管家安卓版5.4版本以上,请您升级至最新版本再参与活动.(进入管家=>右上角个人中心=>关于=>检查更新) 2 ...
- php 随机钱数,PHP 仿微信红包金额随机
博主寒冰最近闲来无事.就想研究一下微信红包的金额随机算法.早在微信红包刚出来的时候就研究过.始终不得要领.后来,通过查阅诸多资料.听说要实现"正态分布".这个理论的东西不想深挖.恰 ...
最新文章
- 用计算机进行图片处理教学设计,三年级信息技术上教学设计
- 同步中断和异步中断区别
- oracle ssh测试不通过,ssh 连接不上 oracle linux 7.2
- Android API Guides---RenderScript
- Spring,Reactor和ElasticSearch:从回调到React流
- centos7下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named ‘_ctypes‘的解决办法
- C#利用委托实现窗体间的值传递
- vue3.0中使用百度离线地图
- 【工具使用】AI帮你写代码
- 对于拖延症的最好方法
- [c语言编程入门]迭代法求平方根
- linux秘钥登录使用authorized_keys不生效
- [js常用积累] js正则表达式验证手机号和数字验证码
- cv::fitLine用法
- 风吹雪支付系统易支付去后台验证版本代理系统
- 监控摄像头上滤光片的作用是什么
- 【附源码】Python计算机毕业设计特大城市地铁站卫生防疫系统
- (一)立创EDA的安装
- 线性代数学习笔记6-2:行列式的理解、行列式的性质
- 计算广告第一章——在线广告综述