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

如何用Excel公式计算满足生产批量要求的最小额外批次?

计算满足批量区间规则的最小额外生产批次

问题描述

某机器的生产批量只能选取指定区间内的整数(例如批量可选5、6、7),现有订单需求批次,需要计算满足生产规则时,最少需要额外多生产的批次数量(即总生产批次与订单需求批次的差值的最小值)。

举个例子:当订单需求为8批次时,最小额外批次是2——因为只能用5、6、7的组合,最接近且不小于8的总生产批次是10(5+5),10-8=2。

示例参考表格

订单需求批次可选批量区间最小额外批次对应生产组合
85-725+5=10
95-715+5=10
45-715(单批次生产)
125-705+7=12 或 6+6=12

计算逻辑与实现

要找到最小额外批次,核心是找到不小于订单需求的最小总生产批次,且这个总批次能拆分为若干个指定区间内的整数之和。

核心判断逻辑

对于给定的总批次total,判断是否符合规则的条件:

  1. 如果total本身就在批量区间内(≥最小批量且≤最大批量),直接符合;
  2. 如果total大于最大批量,只要存在正整数k,使得 k*最小批量 ≤ total ≤ k*最大批量,就说明可以用k个批次组合出total(比如total=10,最小批量5,最大批量7,k=2时,52≤10≤72,符合条件)。

代码实现(Python)

def min_extra_batches(order_qty, min_batch, max_batch):
    if order_qty <= 0:
        return 0
    
    total = order_qty
    while True:
        # 情况1:total在批量区间内,直接满足
        if min_batch <= total <= max_batch:
            return total - order_qty
        
        # 情况2:total大于最大批量,判断是否存在k使得k*min ≤ total ≤k*max
        k_min = (total + max_batch - 1) // max_batch  # 向上取整,得到最少需要的批次数量
        k_max = total // min_batch  # 向下取整,得到最多能有的批次数量
        if k_min <= k_max:
            return total - order_qty
        
        # 不满足则尝试下一个更大的total
        total += 1

测试示例

# 测试订单8,批量5-7
print(min_extra_batches(8,5,7))  # 输出2
# 测试订单9,批量5-7
print(min_extra_batches(9,5,7))  # 输出1
# 测试订单4,批量5-7
print(min_extra_batches(4,5,7))  # 输出1
# 测试订单12,批量5-7
print(min_extra_batches(12,5,7)) # 输出0

内容的提问来源于stack exchange,提问作者H.K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:40:26