1. 前言
- 最近在做一个抢红包的项目,关于红包怎么分配,才能达到一个最佳效果,我做了一些调研以及对应的实现方案。
- 关于每个红包金额的范围采用二倍均值算法[0 .01 - M/N * 2],其中M表示总金额,N表示红包个数。比如:总金额100元分为10个红包,均值:100/10=10元,每个红包金额的范围就是 [0.01 - 20],即1分到20元之间,但范围内的随机值该如何产生,接下来进行分析
2.生成随机数算法
- 线性同余算法:生成一个均匀分布的伪随机数,例如:java.util.Random.next()方法,有规则的随机,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程,特点:在给定种(seed)的区间内随机生成数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。
- 正态(高斯)分布:若随机变量X服从一个数学期望为 μ \mu μ 、方差为 σ 2 \sigma ^ 2 σ2 的高斯分布,记为N(μ, σ 2 \sigma ^ 2 σ2 )。其中期望值(均数) μ \mu μ 决定了位置,其标准差 σ \sigma σ 决定了分布的幅度( σ \sigma σ 越小曲线越尖峭)。N(0, 1)表示标准正态分布。可以利用正态分布近似估算二项分布和泊松分布。正态分布函数密度曲线公式如下:
f ( x ) = 1 σ 2 π e − 1 2 ( x − μ σ ) 2 f\relax{(x)} = \frac 1 {\sigma\sqrt{2\pi}} e ^ {- \frac 1 2 \left( \frac {x-\mu} \sigma\ \right)^2 } f(x)=σ2π1e−21(σx−μ )2- 正态分布与其它分布的区别:正态分布是连续分布,泊松分布,二项分布都是离散分布; 二项分布的极限分布是泊松分布、泊松分布的极限分布是正态分布。正态分布符合中心极限定理:在特定条件下,大量统计独立的随机变量的平均值的分布趋于正态分布。
- 正态分布的特点:符合68-95-99.7法则,即68.3%的面积在平均数左右的一个标准差 σ \sigma σ 范围内;95.4%两个 σ \sigma