砍价破浪算法(第一种)
/**
* 波浪递减砍价算法
* @param $count 拆分数量
* @param $price 拆分总价
*/
function new_split_red_packet($count = 20, $price = 5)
{
//已砍价格数组
$aleadyList = [];
//已砍钱的总和
$aleadyCut = 0;
for ($i = 0; $i < $count; $i++) {
//此次砍价的最低钱数(总价-已砍总价/总次数-已砍次数)(相当于是向上随机)(转换为单位分)
$min = ($price - $aleadyCut) / ($count - count($aleadyList));
//控制波浪幅度 1-2之间
$max = $min * 1.5;
//随机生成砍价金额
$cutPrice = mt_rand($min * 100, $max * 100) / 100