微信红包随机金额生成算法模拟及应用

  微信红包随机金额生成算法模拟及应用_互联网_IT/计算机_专业资料。2019 年 3 月 第 10 期 教育教学论坛 EDUCATION TEACHING FORUM Mar. 2019 NO.10 微信红包随机金额生成算法模拟及应用* 张志雄,张静之,赵春锋

  2019 年 3 月 第 10 期 教育教学论坛 EDUCATION TEACHING FORUM Mar. 2019 NO.10 微信红包随机金额生成算法模拟及应用* 张志雄,张静之,赵春锋 (上海工程技术大学 工程实训中心,上海 201620) 摘要:构造了微信红包随机金额的模拟算法,并验证了模拟算法的有效性。通过模拟算法,产生了大量微 信红包随机金额数据,分析这些数据表明:(1)微信红包随机金额呈正态分布,是在红包份数较少的情况下,表 现出的一种巧合,在红包份数较多的情况下,随机金额并不符合正态分布;(2)对一个微信随机红包,概率上, 每个人抢到的红包金额是相等的,即抢红包的先后次序对抢到金额的多寡没有影响;(3) 对一个微信随机红 包,越晚产生的随机金额,其波动范围越大,即先抢红包的人,抢到平均金额的可能性比较高,后抢的人,要么 抢到较小的金额,要么抢到较大的金额。 关键词:微信红包;微信随机红包模拟算法;正态性检验 中图分类号:C812;O213 文献标志码:A 文章编号:1674-9324(2019)10-0051-03 一、微信红包随机金额模拟算法的构造 在作者之前的研究中,得出了微信红包随机金额 所具有的一些数值特征:(1)对一个随机红包,产生的 第一份随机金额,不会超过此红包平均金额的2倍,之 后产生的每份随机金额,不会超过剩余平均金额的2 倍;(2)对一个随机红包,其所有随机金额构成的数据 样本,大致符合正态分布的特征。 根据微信红包随机金额的数值特征,可以构造微 信红包随机金额生成算法。以一个微信红包产生所有 份随机金额为例,详述随机红包生成算法的模拟过 程。为了表述的方便,设微信随机红包总金额为X元, 份数为N,产生的随机金额按生成的时间先后顺序,依 次为x1、x2、…、xN,随机金额的单位为元。微信随机红包 模拟算法采用Matlab编程实现。 1.依次产生x1,x2,…,x嗓N-1瑟 共N-1个随机数,保证 每个随机数依次不超过当前剩余平均值的2倍。每个 随机数均精确到小数点后两位,即精确到人民币的 分,用来表示随机金额。 先产生第一个随机金额x1,考虑到当前剩余金额 为红包总金额X,当前剩余份数为N,则剩余平均金额 为 X N 。考虑到微信随机红包的最小金额为0.01元,所 以x1 应该介于0.01元和2倍剩余平均金额之间 。在 Matlab中,rand (1,1) 表示一个大于0小于1的伪随机 数,则有 x1=0.01+rand(1,1)*(2* X N -0.01) (1) 接着产生第二个随机金额x2。当前剩余金额为 X-x1,当前剩余份数为N-1,则剩余平均金额为 X-x1 N-1 , 有 x2=0.01+rand(1,1)*(2* X-x1 N-1 -0.01) (2) 其他随机金额的产生依此类推。计算过程中,所 有随机金额,均按照四舍五入的方法精确到小数点后 两位。 2.产生最后一个随机金额xN;为了使N份随机金额 的总和为红包总金额X,令xN为N-1份随机金额产生之 后的剩余金额,即 ∑N-1 xN=X- i=1 xi (3) 3.对随机金额xN进行合理性检验,决定是否接受 本次产生的N份随机金额;如果xN<0.01,则回到第一 步,重新依次产生N个随机金额,重复本过程;如果xN ≥0.01,则表示随机金额产生成功,接受本次产生的N 个随机金额。 二、微信随机红包模拟算法有效性检验 根据微信红包随机金额的数值特征可知,一个微 信随机红包所有份数的随机金额构成的数据样本,大 致符合正态分布。根据这个特征,对本文构造的微信 红包随机金额模拟算法进行有效性检验。 设红包总金额为100元,用模拟算法生成了份数 分别为8、10、15、20、25、30、35、40、45和50的大量随机 收稿日期:2018-06-11 作者简介:张志雄,上海工程技术大学工程实训中心讲师,研究方向为电气自动化与数据挖掘(201620)。 - 51 - 2019 年 3 月 第 10 期 教育教学论坛 EDUCATION TEACHING FORUM Mar. 2019 NO.10 金额数据。采用W检验法检验每个红包随机金额的正 计算得到的期望用柱状图表示,见图1。由图1可 态性。 见,重复次数为100时,不同位置的期望有显著差异。 检验结果表明:红包份数较小时,模拟随机金额 随着重复次数的增加,不同位置上期望值的差异越来 数据一般都符合正态分布;当红包份数大于30时,开 越小,且都越来越趋近红包总平均金额10元。这即是 始有部分模拟红包的随机金额不符合正态分布。模拟 表明,在概率上,抢红包的次序对抢到的金额多少没 红包数据的表现与实际微信红包随机金额的数值分 有显著影响,先抢和后抢的效果是一样的,都抢到该 析结果完全相同。这表明,本文提出的微信红包随机 红包的总平均金额。 金额模拟算法是有效的,其产生的随机金额与微信红 模拟过程还表明,当红包重复产生的次数比较少 包自身产生的随机金额已无法分辨出差异。 时,不同位置上随机金额的期望与红包总的平均 通过模拟算法产生了大量的、不同种类的随机金 值—— —10元之间有显著差异,且最大期望或最小期望 额数据,并用W检验法进行正态性检验。结果表明:每 随机地出现在第1到第10的任意位置上。所以,即便是 个微信红包所有份随机金额构成的数据样本,并不符 在单次抢红包的情况下,也不能凭借抢红包的先后次 合正态分布。之前的研究得出了随机金额符合正态分 序位置来获得显著优势。 布的结论,这只是在红包份数较小的情况下,样本数 通过对模拟算法产生的随机金额数据的分析表 据表现出的一种巧合。同样地,关于微信红包随机金 明,微信红包随机金额的产生方案还是很公平的,先 额数据符合截尾正态分布的观点,就更加不准确了。 抢或后抢获得的金额在统计意义上没有显著差异,即 一般来说,概率分布的检验需要较大的数据样本,小 不同位置上抢红包的机会是均等的。 样本数据的分布检验,不管采用什么方法,都不能可 2.通过模拟算法讨论抢红包先后次序对抢到金额 靠地做出符合某种分布的检验,这是概率分布检验方 的影响。为了考察抢红包先后次序对抢到金额的影 法的天生缺陷。 响,进一步计算了不同重复次数下,不同位置上随机 这表明,微信红包每份随机金额满足不大于2倍 金额的方差。第i份红包x_i的方差,用样本数据的方差 剩余平均金额的产生规则,并不是构建正态分布数据 无偏估计量来描述: 的方法。正态分布现象在现实中虽然广泛存在,但微 信红包随机金额确实不符合正态分布。 三、微信随机红包模拟算法的应用 M 移 D赞(xi)= j = (xji-E赞(xi))2 1 M-1 (5) 1.通过模拟算法检验抢红包先后次序的机会均等 方差计算结果用柱状图表示,见图2。由图2可见, 性。微信随机红包金额的随机性,使得每份随机金额 在红包重复产生次数较少的情况下,如100次和500 不可避免地有大有小,自然就涉及抢红包的策略,是 次,各个位置上的方差呈现忽大忽小的变化,没有显 先抢好呢,还是晚抢好呢?这即是,抢红包的先后次 著的规律。随着重复次数的增多,方差呈现出逐步增 序,或随机金额产生的先后顺序,是否会显著地影响 大的显著特征,而且,最后两个位置上的方差几乎相 抢到金额的多少。如果微信随机红包算法不能保证任 等。这即是表明,在概率上,第1份随机金额的波动范 何次序上产生的随机金额在概率上相等,那么就确实 围较小,之后的随机金额,波动范围逐步增大,且最后 可以在抢红包的过程中,通过采取恰当的占位策略, 两份随机金额的波动范围大致相同。 取得抢红包的优势。 从抢红包的角度来看,这即是表明,先抢红包的 为此,通过模拟算法产生了总金额为100元和份 人,抢到平均金额的概率比较高,而后抢的人,更有可 数为10的随机红包,重复产生次数分别为:100次、500 能抢到较大的金额或较小的金额,即获得金额的波动 次、1000次、2000次、5000次和10000次。然后,对不同 范围较大。 重复次数的模拟红包,分别计算了第1份随机金额到 四、结束语 第10份随机金额的期望。通过期望来衡量先后次序对 根据微信随机红包金额所表现出的数值特征,本 抢到金额的影响,即判断不同位置上抢红包的机会均 文构造了微信随机红包的模拟算法。通过模拟算法, 等性。 对微信随机红包中一些让人普遍感兴趣的问题进行 期望采用算术平均值来估计。这里用xji来表示重 复次数为M的情况下,第i份随机金额的第j个数据,则 第i个位置随机金额的期望为: M 移 E赞(xi)= j xji =1 M (4) 这 里 ,M 的 取 值 分 别 是 100、500、1000、2000、5000 和10000,的取值是1到10。 了定量分析,并得到了可信的结果:微信红包随机金 额,并不符合正态分布;对一个微信随机红包,从概率 上讲,抢红包的先后次序不会显著地影响抢到金额的 多少,即抢红包的机会是均等的;对一个微信随机红 包,不同位置上抢红包的唯一差别是抢到的随机金额 的波动范围不一样,先抢红包的人,抢到平均金额的 可能性比较高,后抢的人,要么抢到较小的随机金额, 要么抢到较大的随机金额。 - 52 - 2019 年 3 月 第 10 期 教育教学论坛 EDUCATION TEACHING FORUM Mar. 2019 NO.10 图1 微信随机红包模拟算法重复产生总金额为100元和份数为10的随机金额数据在不 同位置上的期望。重复产生次数分别为100次、500次、1000次、2000次、5000次和10000次 图2 微信红包模拟算法产生的随机金额方差。设定随机红包总金额为100元,份数为 10。模拟算法重复产生次数分别为100次、500次、1000次、2000次、5000次和10000次 Algorithm of Generating WeChat Random Red Envelope and Its Application ZHANG Zhi-xiong,ZHANG Jing-zhi,ZHAO Chun-feng (Engineering Training Center, Shanghai University of Engineering Science,Shanghai 201620,China) Abstract: A simulation algorithm was constructed for generating WeChat random red envelope,and was validated. The conclusions were drew by analyzing mass of data generated by the simulation algorithm:(1) the normal distribution of lucky money in a WeChat random red envelope was accidentally coincidental in the condition of small amount of lucky money pieces;(2) For a WeChat random red envelope,the lucky money generated at each time position is equal in probability method,i.e.,the order of drawing red envelope has no effect on the amount of lucky money; (3) For a WeChat random red envelope,the later lucky money generated,the greater the fluctuation range of lucky money was. That means the lucky money generated first was more probably equal to the average of lucky money,and that generated later more probably deviated from the average,i.e.,either much smaller or much greater than the average. Key words: WeChat red envelope;test of normality;method for normal testing - 53 -

声明:本文图片、文章来源于网络,不代表现金红包之意见及观点,如有侵权,请与我联系删除。转载请注明出处: http://www.zuyitang.com/weixinhongbao/4748.html