PHP把一个正整数随机分成若干份

今天分享一个算法,由于项目需求,要把一个具体的正数随机分配到24小时内,每个小时分到的数都是随机的,不够用0补充,下面是实现过程。

/*
 * 随机拆分
 * @param $total_num int 总数
 * @param $total_copies int 总份数
 * @return string/array
 * */
function random_split($total_num,$total_copies){
    $result = []; //结果
    for($i=$total_copies;$i>0;$i--){
        $ls_num=0;
        $num = 0;
        if($total_num > 0){
            if($i==1){
                $num += $total_num;
            }else{
                $max_num = floor($total_num/$i);
                $ls_num = mt_rand(0,$max_num);
                $num += $ls_num;
            }
        }
        $result[] = $num;
        $total_num -= $ls_num;
    }
    shuffle($result); //打乱数组
    //return implode(',',$result); //返回字符串
    //return $result; //返回数组
}

如果能帮助您解决问题,顺手点个赞呀

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值