一旦工作,那就要努力的干,聪明的干,快速的干——用省下来的时间干自己喜欢干的事情。!

php微砍价活动砍价算法-类似微信红包算法

php lampnick 8599℃ 0评论

直接上代码:

<?php
/**
 * 获取随机金额
 * @param $remainSize
 * @param $remainMoney
 * @param $min
 * @return int
 */
function _getRandomMoney($remainSize, $remainMoney, $min = 1)
{
 if ($remainSize == 1) {//只剩一次,直接返回剩余金额
 return $remainMoney;
 }
 $max = $remainMoney / $remainSize * 2;//最大金额为:(剩余金额/剩余次数)* 2
 $money = _randomFloat() * $max;//产生随机的金额
 $money = $money <= $min ? $min : $money;//如果比要求的最小的金额还小,则取最小金额
 $money = floor($money * 100) / 100;
 return (int)$money;//如果要做成微信红包功能,则把(int)去除即可,传入的$min改为:0.01
}
/**
 * 获取一个随机的两位小数
 * @return float
 */
function _randomFloat()
{
 return round(mt_rand(1, 100) / 100, 2);
}
//随机运行200次
$count = 200;
for ($i = 0; $i < $count; $i++) {
 $remainSize = 40;//每一轮剩余次数为40次
 $remainMoney = 2400;//剩余金额为2400
 $min = 1;//每次随机生成的最小金额
 $sum = 0;//累计值
 echo "<hr/>";
 while ($remainSize) {
 $money = _getRandomMoney($remainSize, $remainMoney, $min);
 $sum += $money;
 $remainMoney -= $money;
 echo str_pad($money, 4, '_', 0) . "|";
 $remainSize -= 1;
 }
}
echo "<hr/>";

转载请注明:MitNick » php微砍价活动砍价算法-类似微信红包算法

喜欢 (18)or分享 (0)
头像
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址