开发运输难题的算法

时间:2014-08-12 21:19:32

标签: algorithm river-crossing-puzzle

我受到同事的挑战,为下面的谜题开发算法。

有一座桥一次只能容纳两辆卡车。桥的一端有重型花岗岩块,需要运到桥的另一端。共有5辆卡车。每辆卡车最多可搭载5个花岗岩块。加载和卸载单个块需要10分钟。无论重量如何,卡车在桥上行驶需要1小时。在桥的每一端只有一个人装载和卸载卡车,因此卡车需要等待,而另一个人正在装载或卸载。

我们的目标是在12小时内尽可能多地运输。在这个时间范围内我们可以运输的总块数是多少?拥有超过5辆卡车会有帮助吗?

您将如何解决此问题并开发算法?

1 个答案:

答案 0 :(得分:0)

将问题分解成碎片。
桥一次可以容纳2辆卡车。我们有5辆卡车。一辆卡车需要1小时才能过桥。对于第一个小时,2辆卡车将并排,他们将等待卸载5 * 2 = 10个街区。其他2辆卡车也会发生同样的情况。在最初的2小时内,将有20个街区被取代。与此同时,最后两辆卡车将在第5辆卡车装载滑车之前和之后卸载,其他1辆(卸载)将在返回装载前行驶。因此,对于第3小时,只有5个街区将被移位。但​​是因为还有另一辆卡车在卸载的通道上等待(第4小时)。 IT将立即开始行程,而“仍然装载”的卡车将需要10分钟重新填充,因此总时间= 1小时10分钟加起来4小时10分钟,总块转移= 20。 同样将继续如下:
5小时20分钟:25块
6小时30分钟:30个街区
7小时40分钟:35块
8小时50分钟:40块
10小时00分钟:45个街区
11小时20分钟:50块 以来,卡车需要1小时,他们将留在桥上,直到时间结束。所以转移的总块数= 50。抱歉错误的拼写小伙伴。