PHP红包算法如何实现长尾词?

2026-04-05 15:461阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计407个文字,预计阅读时间需要2分钟。

PHP红包算法如何实现长尾词?

本篇文章简要介绍PHP拆红包算法,具有一定的参考价值,需要的友人可以参考以下内容,希望能对大家有所帮助。

PHP拆红包算法示例代码:/** * 红包算法 * * @param int $totalMoney 红包总金额 * @param int $totalNum 红包个数 * @param array $params 参数 * @return array */function splitRedPacket($totalMoney, $totalNum, $params=[]) { $result=[]; $base=$totalMoney / $totalNum; $left=$totalMoney % $totalNum;

PHP红包算法如何实现长尾词?

for ($i=0; $i < $totalNum; $i++) { if ($left <=0) { $result[]=round($base, 2); } else { $rand=rand(0.01, 0.99); $result[]=round($base + $rand, 2); $left--; } }

return $result;}

本篇文章给大家简析PHP拆红包算法,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP拆红包算法

代码如下:

/** * 拆分红包 * @param SendRedPackageRequest $request * @return array */ protected function spitMoney(SendRedPackageRequest $request) { $result = []; $reamingMoney = $request->money; for ($i = $request->count; $i >= 1; $i--) { if ($i === 1) { $result[] = round($reamingMoney, 2); $reamingMoney = 0; } else { $average = round(bcdiv($reamingMoney, $i), 2); //平均值 $amount = round(mt_rand(1, $average * 199) / 100, 2); $reamingMoney = doubleval(bcsub($reamingMoney, $amount)); $result[] = round($amount, 2); } } return $result; }

逻辑比较简单,传入金额.和拆分的数量

首先循环要拆分的数量,判断如果是最后一个就把剩下的钱全部塞进去;

如果不是,就取剩余的金额(第一次循环剩余的金额=总金额)除以剩下的次数,取得平均值,然后再随机取最小的0.01 和平均值*2,把剩余的金额更新一下就行了。

算法模拟微信拆红包算法,但是这是提前计算拆分的数据保存的,微信是每次动态计算的。

本文共计407个文字,预计阅读时间需要2分钟。

PHP红包算法如何实现长尾词?

本篇文章简要介绍PHP拆红包算法,具有一定的参考价值,需要的友人可以参考以下内容,希望能对大家有所帮助。

PHP拆红包算法示例代码:/** * 红包算法 * * @param int $totalMoney 红包总金额 * @param int $totalNum 红包个数 * @param array $params 参数 * @return array */function splitRedPacket($totalMoney, $totalNum, $params=[]) { $result=[]; $base=$totalMoney / $totalNum; $left=$totalMoney % $totalNum;

PHP红包算法如何实现长尾词?

for ($i=0; $i < $totalNum; $i++) { if ($left <=0) { $result[]=round($base, 2); } else { $rand=rand(0.01, 0.99); $result[]=round($base + $rand, 2); $left--; } }

return $result;}

本篇文章给大家简析PHP拆红包算法,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP拆红包算法

代码如下:

/** * 拆分红包 * @param SendRedPackageRequest $request * @return array */ protected function spitMoney(SendRedPackageRequest $request) { $result = []; $reamingMoney = $request->money; for ($i = $request->count; $i >= 1; $i--) { if ($i === 1) { $result[] = round($reamingMoney, 2); $reamingMoney = 0; } else { $average = round(bcdiv($reamingMoney, $i), 2); //平均值 $amount = round(mt_rand(1, $average * 199) / 100, 2); $reamingMoney = doubleval(bcsub($reamingMoney, $amount)); $result[] = round($amount, 2); } } return $result; }

逻辑比较简单,传入金额.和拆分的数量

首先循环要拆分的数量,判断如果是最后一个就把剩下的钱全部塞进去;

如果不是,就取剩余的金额(第一次循环剩余的金额=总金额)除以剩下的次数,取得平均值,然后再随机取最小的0.01 和平均值*2,把剩余的金额更新一下就行了。

算法模拟微信拆红包算法,但是这是提前计算拆分的数据保存的,微信是每次动态计算的。