在数字化转型中,选择合适的跨平台开发框架不仅能提高效率,还有助于确保数据安全与合规性。
719
2022-08-25
微信红包算法
红包金额的区间为 0.01 - 平均值的2倍
这也就是说,假设给10个人发送100元的红包,那么:
第一个人得到金额的区间为[0.01,20]
假设 前三个人 领到的红包为50元,那么此时红包还剩下 7个人 没有领取红包,红包还剩下 50元 ,那么下一个人可以得到的最大金额为:
(100-50)/(10-3)*2=14.29
第四个人得到的金额的区间为[0.01,14.29]
以此类推,最终可以将红包领完,python的代码为:
# 领红包的主要程序def distribute(number, money): # 判断人数是不是整数 if type(number) == type(1): moneymin = 0.01 # 最大的数为平均数的2倍 moneymax = money / number * 2 # 判断钱是不是小于人头总数 if money >= number * 0.01: getmoney = random.randint(1, 100) / 100 * moneymax if getmoney < moneymin: getmoney = moneymin return round(getmoney, 2) else: return round(getmoney, 2) else: print("钱少于人头数,请重新输入...") else: print("输入的不是整数,请重新输入...")
因此,作者加入多进程后,程序运行的时间普遍在 0.5-0.6秒之间 :
说明该代码还是可行滴!
完整的代码在我的github上面:
TTyb
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~