计算货物需要多少卡车(跟进)

时间:2012-11-09 12:26:52

标签: algorithm math

相关问题:Calculating truck cargo capacity in a game

在我的相关问题中,我有3种不同类型的卡车,但我决定让它更加简化,只需要一个简单的数字就可以确定每个玩家拥有多少卡车。

我需要知道给定货物需要多少卡车。

  

每辆卡车可装载50个板条箱(truckCapacity

     

玩家1有0辆卡车(numberOfTrucks

     

我要搬的货物是10箱(cargo

我尝试了以下内容;

sum = truckCapacity / cargo
= 5

这是错误的,如果我要搬10个板条箱,它应该是1.因为我只需要1辆卡车来搬10个板条箱

我试过

sum = truckCapacity - cargo
= 40

这并没有告诉我我需要多少辆卡车。

我按照相关问题中的接受答案尝试了

current_capacity(truck) = total_capacity(truck) - loaded_crates(truck)

但这只能一次装载一辆卡车,并没有告诉我需要购买多少辆卡车。

我追求的是什么;

我用货物喂食,然后返回需要多少卡车来搬运货物。

如果我要搬运很多货物,它也应该有效。所以,如果我要移动500个箱子,它应该告诉我需要10辆卡车(每辆卡车50个箱子* 10辆卡车= 500个箱子搬运)

卡车剩余多少空间并不重要。

4 个答案:

答案 0 :(得分:6)

已经给出了正确的答案,但我想告诉你为什么它是正确的,以及如何根据你已经知道的事情自己提出它:

您自己的计算中,您说:

  

每辆卡车50个箱子* 10辆卡车= 500个箱子搬运

象征性地,这是:

  

cratesPerTruck * trucks = crates

这就是说,考虑到容量和可用卡车的数量,您可以计算出可以移动的箱子数量。

您现在可以解决卡车

  

cratesPerTruck * trucks = crates - 将双方除以 cratesPerTruck
     cratesPerTruck / cratesPerTruck * trucks = crates / cratesPerTruck
     1 * trucks = crates / cratesPerTruck
     trucks = crates / cratesPerTruck

有答案。

直觉

分裂有两种常见的解释:

  1. 分布
  2. 将对象装入另一个 1
  3. 适合:我们也可以问自己,一个数字适合另一个数字的次数 例如,我们需要跨越50米的链条,但我们只能购买2米的链条。我们需要连锁多少链?

    50 / 2 = 25:两米长50米,25米,所以我们需要25米两米的链条。

    在你的例子中应用拟合:我们只说你的每个箱子都是一米长,你总共有50个箱子。其次,你的每辆卡车都有一个10米长的装载区。你可以想象装载区域在彼此后面排成一列,所以你需要知道一个装载区域适合你的50米板条箱的次数。

    50/10 = 5需要卡车。

    分发:假设我们有10个苹果和5个人。我们在人群中分发苹果,每个人有多少申请?

    10/5 = 2 ,所以每个人都有两个苹果。

    将分布应用于您的示例不太直观 2 ,但它确实有效。
    假设一辆卡车有4箱的容量,所以有1号,2号,3号和4号。

    如果您要将板条箱堆放到这四个点上,您获得的等级数量等于运输整个货物所需的卡车数量。

    如果我们有24个板条箱分布在各个地点,每个地方将堆放6个板条箱,这意味着你总共需要6辆卡车。

    维度分析

    cratesPerTruck描述了一个比率 - 正如 所暗示的那样 - 速度与描述每个的数量相同强>第二你走路:

    • crates除以卡车
    • 米除以秒

    从这个简单的单词替换中可以看出,这些单元描述了分区

    crates per truck

    如果您将包裹数量除以crates divided by trucks,则可获得以下内容:

    dimensional analysis

    除以分数与乘以它的倒数相同。 [crates]然后取消,留下[trucks]


    <子>的脚注
    1 或者给我发表评论并提出更好的建议。

答案 1 :(得分:3)

分区是要走的路,但是你分道错误。如果您知道cargocargo_per_truck,那么:

trucks = cargo / cargo_per_truck

因此,如果每辆卡车有50个箱子,则需要500个箱子,你需要500/50 = 10辆卡车。

当然,这将为您提供小型卡车 - 有10个箱子,您需要10/50 = 0.2卡车 - 因此您需要始终围捕:

trucks = ceil(cargo / cargo_per_truck)

答案 2 :(得分:3)

天花板(货物/卡车能力)。

在数学和计算机科学中,floor和ceiling函数分别将实数映射到最大的前一个或最小的下一个整数。更确切地说,floor(x)=是不大于x的最大整数,而ceiling(x)=是不小于x的最小整数。 http://en.wikipedia.org/wiki/Floor_and_ceiling_functions

答案 3 :(得分:0)

您可以尝试使用:

(5021/50)mod 1

5021 货物 50 容量 即可。 您将按货物/容量获得卡车数量。 mod部分将检查卡车提取后遗留的内容,1比1。

在这种情况下,此值将返回0或1,因为它的整数只显示整数。

所以你想要的是检查你是否还剩下什么。 如果不是(mod返回0) 您需要 货物/容量 = truckNeeded。 如果(mod返回1)你需要( 货物 / 容量 )+ 1 = trucksNeeded。< / p>

简而言之: truckNeeded =(货物/容量)+(货物/容量mod 1)