ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简易的瓜分红包方法

2021-08-27 12:03:21  阅读:154  来源: 互联网

标签:红包 return min 金额 param 瓜分 简易 num total


最近项目上线了一个活动,需要瓜分红包。

要求:

    1.随机分配  2.有最大金额和最小金额 

下面是我写的方法:提前分配好红包金额给来的人,后面直接显示就可以了。

 

/**
 * @param $total  平分金额总额
 * @param $num     总人数
 * @param $min      最小金额
 * @param $max      最大金额
 * @return array|bool
 */

function randRedPacket($total, $num, $min, $max){
    if($total < 0 || $num < 0 || $min < 0 || $max < 0){
        return false;
    }
    if($min * $num > $total){
        return false;
    }
    $ret = [];
    $left = $total - ($num * $min);
    for($i = 0; $i<$num; $i++){
        if(($left + $min) < $max){
            $max = $left + $min;
        }
        if($i == ($num - 1)){
            $tmp = $left;
        } else {
            $tmp = rand(0, ($max - $min));
        }
        $ret[] = $min + $tmp;
        $left = $left - $tmp;
    }
    shuffle($ret);
    return $ret;
}

输出即可,应该算作最简单的瓜分金额方法了吧。  

 

标签:红包,return,min,金额,param,瓜分,简易,num,total
来源: https://www.cnblogs.com/wujf-myblog/p/15193186.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有