相关问题: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个箱子搬运)
卡车剩余多少空间并不重要。
答案 0 :(得分:6)
已经给出了正确的答案,但我想告诉你为什么它是正确的,以及如何根据你已经知道的事情自己提出它:
在您自己的计算中,您说:
每辆卡车50个箱子* 10辆卡车= 500个箱子搬运
象征性地,这是:
cratesPerTruck * trucks = crates
这就是说,考虑到容量和可用卡车的数量,您可以计算出可以移动的箱子数量。
您现在可以解决卡车:
cratesPerTruck * trucks = crates
- 将双方除以cratesPerTruck
cratesPerTruck / cratesPerTruck * trucks = crates / cratesPerTruck
1 * trucks = crates / cratesPerTruck
trucks = crates / cratesPerTruck
有答案。
分裂有两种常见的解释:
适合:我们也可以问自己,一个数字适合另一个数字的次数 例如,我们需要跨越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 divided by trucks
,则可获得以下内容:
除以分数与乘以它的倒数相同。 [crates]
然后取消,留下[trucks]
。
<子>的脚注强>:
1 或者给我发表评论并提出更好的建议。
答案 1 :(得分:3)
分区是要走的路,但是你分道错误。如果您知道cargo
和cargo_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)