二倍均值随机算法之抢拼手气红包场景应用

文章讨论了两种生成红包金额的方式,预计算和实时算,并介绍了蒙特卡罗方法。预计算占用额外存储空间,而实时算则无需存储,适合高并发场景。二倍均值法是一种避免红包金额分配不均的算法,确保随机性和公平性。代码示例展示了如何使用二倍均值法生成红包金额,同时满足总金额和人数的要求。
摘要由CSDN通过智能技术生成

两种生成红包的方式对比

拼手气红包有两种计算方法,一种是预计算,一种是实时算。

预计算在生成拼手气红包的时候,会提前根据总金额M和红包人数N,生成每个红包的金额,在抢红包的过程中,只需要从金额列表中取出,直至取完。这种方式需要占用额外的存储空间并且增加额外的I/O,在高并发场景下并不是最优的解决方案。
实时算采用的是纯内存计算,不需要预算空间存储,实时性很高。

蒙特卡罗方法

蒙特卡罗方法是由著名科学家、“计算机科学之父”和“博弈论之父”冯·诺依曼提出的,此种方法又可称为统计模拟法、随机抽样技术,是一种以概率和统计理论方法为基础的计算方法。主要是通过将待求解的问题采用相同的概率模型进行求解,并用电子计算机实现统计模拟或抽样,以获得问题的近似解。

蒙特卡罗方法生成随机数的主要步骤如下:
(1)针对实际问题建立一个简单且便于实现的概率统计模型,使所求的量恰好是该模型的概率分布或数字特征。
(2)基于模型的随机变量建立抽样方法,在计算机上进行模拟测试,抽取足够多的随机数。 (3)对模拟实验结果进行统计分析,给出所求解的估计值,这就是最终产生的随机数。
(4)必要时,可以通过改进模型以提高估计精度和减少实验费用,最终提高模拟效率。 直白点讲,这种算法主要是通过建立一个模型,并对模型中的随机变量建立抽样方法,在计算机中反复多次进行模拟测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值