admin管理员组文章数量:1516870
python 随机抢红包
"""
发红包时用户输入一个红包总金额和待发红包总数,
发布红包后,其它用户抢红包时可以随机得到不定金额的红包(前 n 个人中每个人都能抢到红包),
RP 好的可能抢到几块,RP 不好时可能只会抢到几 毛,甚至几分钱二倍均值法
方法实现的原理是:每次以 [最小值,红包剩余金额 / 人数 * 2] 的区间进行取值。假设红包金额为 88.88,红包数量为 8 个,理想情况下,方法的实现效果:第一个人领取红包金额区间为 [0.01, 88.88 / 8 * 2],即是 [0.01, 22.22] 之间随机获取金额数。
假设取平均值 11.11,则剩余金额 77.77;第二个人领取红包金额区间为 [0.01, 77.77 / 7 * 2],即是 [0.01, 22.22] 之间随机获取金额数。
假设取平均值 11.11,则剩余金额 66.66;以此类推…
该方法也不是完美的,上述是非常理想情况下红包的领取金额,同时每个人获取金额区间相对公平。但是当其
中一个人在区间取值接近最小值或者最大值都会对后面的区间造成影响。当取到接近最小值时,后面领取红包
金额区间将会变大;反之,则变小。这也是该方法的弊端。
"""
import randomtotalmoney = float(input('输入红包总金额:'))
num = int(input('输入红包数量:'))
Pi = 1
usedmoney = 0
if num > 0 and totalmoney > 0:while num > 1:randommoney = round(random.uniform(0.01, (totalmoney-usedmoney)/num*2),2)print('第%d个红包金额:'%Pi,randommoney)usedmoney += randommoneynum -= 1Pi += 1else:print('最后一个红包金额:%.2f'%(totalmoney-usedmoney))
else:print('红包总金额或红包数量 输入错误,请重新输入')
本文标签: python 随机抢红包
版权声明:本文标题:python 随机抢红包 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1706695704a700359.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论