如何计算我应该从特定值中减去多少次?

How to calculate how many times I should subtract from a particular value?

在我的程序中,每个 Job 都有一个关联的数组 costs。我正在尝试编写一个函数来计算在耗尽特定资源之前可以完成多少次作业。每个作业根据执行它的工人数计算其每周期成本,因此一个作业有 10 个工人,成本为 2 个单位, 将在完成每个周期后从库存中减去 20 个单位。

但是,我希望该函数能够说明有足够的资源可供作业部分完成的情况。因此,使用上面的示例,可能只有 15 个单位的资源存在,因此减去 14 个单位,余数为 1。

大致在伪代码中(我正在使用 Typescript,但任何语言都可以):

def doJob(cost, amount, worker):
  if amount - cost * workers >= 0
     amount - cost * workers
  if amount - cost * workers < 0
     ....

编辑:

我怎样才能完成这个函数,以便它正确地从“amount”变量中减去而不低于零,并且“worker”变量可以是任意大的数字?

听起来您正在寻找所有资源中最小的 resource / resourcePerCycle。这还没有考虑工人的数量,但你只需要将 maxJobCount 除以工人的数量来处理多个工人(假设我正确理解你的问题)。

const stockpile = [1000, 50, 50];
const jobCost = [200, 20, 2];

function maxJobCount(jobCost, stockpile) {
  return Math.min(
    ...jobCost.map((_, i) => stockpile[i] / jobCost[i])
   );
}
console.log(maxJobCount(jobCost, stockpile));