乐于分享
好东西不私藏

【源码】用易语言来模拟抢红包的金额分配

【源码】用易语言来模拟抢红包的金额分配

点击上方微信公众号,可快速关注

前言

近日看到官媒在分析抢红包的那点事儿,如果是按照完全随机分配的原则来抢红包,其实是存在不足,先抢的人数学期望更高、更容易拿大额,对后抢的人不公平;为解决此问题,现在采用“二倍均值法”,给每个人的红包设限(最多不超过剩余金额平均值的两倍),拉平所有人的平均运气,保障相对公平,且越往后抢越有可能拿到大额逆袭。其实,真实的抢红包算法要更复杂一些。除了保障相对公平的金额分配外,平台还要兼顾最小金额限制,高并发下的系统稳定性等各种细节问题。

思路简介

之前,古屋也发现,如果纯用取随机数()这个命令,可能会导致红包领取的金额过于突出。但通过一定的算法,可以把红包的每份的金额控制在一个中位数的周围,比如100元抢10份,基本上中位数在10元这个平均数的周围,众数也是如此,最大额和最小额占比并不是很大。也是当时微信红包刚刚兴起的那几年,古屋参考一些技术贴,原理现在也说不清了。当时有给C语言还是JAVA的代码,于是就尝试翻译成了易语言源码。刚好最近又看到介绍抢红包,就再分享下。

代码段

小贴士:

  • 利用精易模块的的数组排序命令,主要是为了更加直观地理解到每个红包的数值分配的规律。

  • 取随机数()这个命令还有整数型本身有范围的。

点击原文阅读可以获得源码,解锁密码请看→这儿

看懂~掌声~

记得点赞转发推荐哟!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 【源码】用易语言来模拟抢红包的金额分配

评论 抢沙发

1 + 7 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮