1

相关问题:在游戏中计算卡车载货量

在我的相关问题中,我有 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

4 回答 4

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

拟合:我们也可以问自己,一个数字适合另一个数字多少次。
例如,我们需要跨越 50 米的链条,但我们只能购买 2 米的链条。我们需要将多少条链链在一起?

50 / 2 = 25: 2 米适合 25 次 50 米,所以我们需要 25 条 2 米链条。

将拟合应用于您的示例:假设您的每个板条箱长一米,总共有 50 个。其次,您的每辆卡车都有一个 10 米长的装载区。您可以想象将装载区排成一列,因此您总共需要知道一个装载区可容纳多少次 50 米的板条箱。

50/10 = 5需要卡车。

分布:假设我们有 10 个苹果和 5 个人。我们将苹果分发给人们,每个人得到多少申请?

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

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

如果您要将板条箱堆放在这四个位置上,那么您获得的层数等于您需要多少辆卡车来运输整个负载。

如果我们有 24 个板条箱要分配到各个点,那么每个点将堆放 6 个板条箱,这意味着您总共需要 6 辆卡车。

多方面分析

cratesPerTruck描述一个比率——正如per所暗示的——就像速度描述你每秒走多少一样:

  • 板条箱被卡车分开
  • 米除以秒

从这个简单的单词替换中可以看出,这些单位描述了一个部门

每辆卡车的板条箱

如果将多个 crate 除以crates divided by trucks,您将得到以下结果:

多方面分析

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


脚注
1或者给我一个更好的想法的评论。

于 2012-11-09T13:26:58.217 回答
3

分裂是要走的路,但你分裂的方向错了。如果你知道cargocargo_per_truck,那么:

trucks = cargo / cargo_per_truck

因此,给定 500 个板条箱,每辆卡车 50 个板条箱,您需要 500/50 = 10 辆卡车。

当然,这会给你部分卡车——有 10 个板条箱,你需要 10/50 = 0.2 辆卡车——所以你需要总是四舍五入:

trucks = ceil(cargo / cargo_per_truck)
于 2012-11-09T12:32:26.860 回答
3

这是天花板(货物/卡车容量)。

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

于 2012-11-09T12:32:31.493 回答
0

您可以尝试使用:

(5021 / 50) 模型 1

其中5021是您的货物50是您的容量。您将按货物/容量获得卡车数量。mod部分将检查提取卡车后剩下的东西,1比1。

在这种情况下,该值将返回 0 或 1,因为它是一个整数,它只显示整数。

所以你想要的是检查你是否还有任何东西。如果不是(mod 返回 0),您需要货物/容量= TrucksNeeded。 如果有(mod 返回 1),您需要(货物/容量)+ 1 = TrucksNeeded。

简而言之: 卡车需要 =(货物/容量)+(货物/容量 mod 1)

于 2012-11-09T15:37:02.463 回答