You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中实现整数均等分配的安全除法函数技术问询

PHP实现无小数的均等整数分配

PHP没有内置的直接函数来完成你描述的“无分数/小数的安全除法”(即把被除数尽可能均等分配为指定数量的整数),但可以自行编写函数实现该需求。

实现思路

  1. 计算基础分配值:用整数除法得到被除数除以除数的整数部分(intdiv() 函数)。
  2. 计算余数:被除数除以除数后剩余的数值,这个余数决定了有多少个元素需要在基础值上加1,从而实现“尽可能均等”的分配。
  3. 生成结果数组:先创建一个所有元素都是基础值的数组,再给前余数个元素各加1。

代码实现

function safeDivide(int $dividend, int $divisor): array {
    if ($divisor <= 0) {
        throw new InvalidArgumentException('除数必须是正整数');
    }
    
    $baseValue = intdiv($dividend, $divisor);
    $remainder = $dividend % $divisor;
    
    // 初始化所有元素为基础值
    $result = array_fill(0, $divisor, $baseValue);
    
    // 给前$remainder个元素各加1,分配余数部分
    for ($i = 0; $i < $remainder; $i++) {
        $result[$i]++;
    }
    
    return $result;
}

测试验证

调用函数测试你给出的示例:

  • safeDivide(10, 3) → [4, 3, 3]
  • safeDivide(11, 3) → [4, 4, 3]
  • safeDivide(50, 2) → [25, 25]
  • safeDivide(51, 2) → [26, 25]
  • safeDivide(40, 5) → [8, 8, 8, 8, 8]
  • safeDivide(40, 3) → [14, 13, 13]

边界处理

函数中加入了对除数的合法性校验,当除数为0或负数时会抛出异常,避免运行错误。

内容的提问来源于stack exchange,提问作者Giedrius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:02:22