在游戏中计算卡车货运能力



这更像是一个数学/算法问题,而不是一个编程问题,但我希望你们无论如何都能提供帮助。

场景 #1:

玩家 1 的物品栏中有 40 crates

玩家 1 有 2 trucks

1x small(容量:8个板条箱(

1x medium(容量:16 个板条箱(

<小时 />

给定capacity

一辆small卡车可容纳 8 个板条箱

一辆medium卡车可容纳 16 个板条箱

一辆large卡车可容纳 30 个板条箱

玩家 1 需要多少辆卡车才能带走所有 40 个板条箱?

场景#2,如果卡车上已经有货物怎么办?

玩家 1 有 40 个板条箱和 2 辆卡车,如上所示。

如果small的负载中已经有 2 个板条箱,给他 8-2 = 6 个空间

如果medium的负载中已经有 4 个板条箱,给他 16-4 = 8 个空间

玩家 1 需要多少辆卡车才能拿走所有 40 个板条箱? 算法会是什么?

场景#3:没有卡车

玩家 1 有 0 辆卡车。 他需要多少辆卡车才能带走所有 40 个板条箱? 再说一次,你会使用的算法是什么?

场景#4:卡车太多

玩家 1 有 10 辆卡车,全部容量large。 运送所有 40 个板条箱需要多少辆卡车?

我在想。

场景 1,

2 trucks, 1 small = 8 and 1 medium = 16
8+16 = 24 crates
40 - 24 = 16 trucks?? // This looks wrong.

卡车的成本是更早完成的(你先买它们(。

我认为我的算法是错误的。 我需要将其除以基数吗? 我用卡车划分吗?

对此的任何帮助都将非常有帮助。

我建议使用以下算法(伪代码(

do truck = 1,number_trucks
  current_capacity(truck) = total_capacity(truck) - loaded_crates(truck)
enddo
sort trucks according to current_capacity (biggest first)
remaining_crates = 40
do truck = 1,number_trucks
  if(remaining_crates - current_capacity(truck) > 0)
    load truck full
    remaining_crates -= current_capacity(truck)
  else
    if(truck != last truck)
      if(remaining_crates - current_capacity(truck+1) > 0)
        load truck with remaining_crates
        remaining_crates = 0
      endif
    else
      load truck full
      remaining_crates -= current_capacity(truck)
    endif
  endif
enddo
sort truck_class according to total_capacity(truck_class) (biggest first)
do truck_class = 1,number_truck_classes
  while(remaining_crates - total_capacity(truck_class) > 0)
    buy truck of truck_class
    remaining_crates -= total_capacity(truck_class)
  end while
  if(truck_class == number_truck_classes && remaining_crates > 0)
    buy truck of truck_class
  endif
enddo

当您尝试解决此类事情以保留单元时,这非常有帮助

40 板条箱 - 24 板条箱 = 16 板条箱

玩家有 40 个板条箱,他

有能力运输 24 个板条箱,所以他需要额外的卡车来运输剩余的板条箱。 据推测,运输 16 个板条箱的最有效方法是增加 1 辆中型卡车(您也可以获得 1 辆大卡车或 2 辆小卡车(。

相关内容

  • 没有找到相关文章

最新更新