玩微信都喜欢抢微信红包,那么大家了解过PHP红包算法是怎么样的吗?下面小编为大家解答一下,希望能帮到您! 算法原理如下/**获取随机红包*min
玩微信都喜欢抢微信红包,那么大家了解过PHP红包算法是怎么样的吗?下面小编为大家解答一下,希望能帮到您!
算法原理如下
/*
* 获取随机红包
* min<k<max
* minn-1 <= money - k <= n-1max
* k <= money-n-1min
* k >= money-n-1max
*/function getRedPackage$money, $num, $min, $max
$data = array; if $min * $num > $money
return array;
if$max*$num < $money
return array;
while $num >= 1 $num--; $kmix = max$min, $money - $num * $max; $kmax = min$max, $money - $num * $min; $kAvg = $money / $num + 1; //获取最大值和最小值的距离之间的最小值
$kDis = min$kAvg - $kmix, $kmax - $kAvg; //获取0到1之间的随机数与距离最小值相乘得出浮动区间,这使得浮动区间不会超出范围
$r = floatrand1, 10000 / 10000 - 0.5 * $kDis * 2; $k = round$kAvg + $r; $money -= $k; $data[] = $k;
return $data;
这个算法的原理其实就是根据剩余不断变化的平均值去加减随机数做到不超过总额,但红包的分布就没那么平均。
推荐访问:红包 算法 PHP PHP红包算法 PHP红包算法 php随机红包算法 php红包源码 红包算法怎么实现的
【2023PHP红包算法】相关文章: