收集指定数量资源所需的最短时间
一开始我们拥有1个基地、4个工人,50点水晶矿。我们想在尽可能短的时间内收集到`10^{100}`点水晶矿。
对于每个工人来说,他可以采矿或建造,但同一时间只能干1件事,不能同时干2件事。
如果进行采矿,那么
每工作10秒就可以采集8点水晶矿。
需要注意的是,水晶矿的采集不是连续的,
采集工作只进行9.999...9秒并不会获得任何水晶矿,
在进行了10秒的时候才会一次性获得8点水晶矿。
如果进行建造,那么有以下2种设施可供选择:
1. 基地:建造1个新的基地需要先行消耗400点水晶矿,然后连续工作120秒即可建成。
每建成1个基地,那么工人数目的上限+10。
(一开始我们拥有1个基地,工人数目的初始上限是10。)
如果当前的工人数目未达到上限,
那么基地可以先行消耗50点水晶矿,进入雇佣工人状态。
一旦一个基地进入雇佣工人状态,那么工人的数目立刻+1。
雇佣工人状态持续20秒后,方可获得1个新的工人,
此时该基地回到空闲状态,可以在工人数目未达到上限的前提下,
再次消耗50点水晶矿和20秒的时间雇佣1个新的工人。
2. 供给站:建造供给站需要先行消耗100点水晶矿,然后连续工作30秒即可建成。
每建成1个供给站,那么工人数目的上限+8。
除此之外,供给站没有别的用途了。
需要注意的是:
只要工人数量足够,可以同时建造多个设施,但每个设施只能由1名工人建造。
只要不超过人数上限,多个基地可以同时进入雇佣工人状态。
水晶矿不能透支,必须要有足够的水晶矿才可以开始雇佣工人或建造设施。
#####
以下是最快收集100点水晶矿的实例:
4个工人一起采矿20秒,获得64点水晶矿,
加上初始的50点水晶矿,就有了114点水晶矿。
因此只用了20秒就达成了目标。
#####
以下是最快收集1000点水晶矿的实例:
一开始就让基地雇佣工人,所有工人都去采矿。
基地连续雇佣了6个新的工人后,
工人的数目达到了10的上限,不能再雇佣了。
此后就坐等目标达成。
于是耗时200秒,
采集了8*(4+4+5+5+6+6+7+7+8+8+9+9+10*8)=1264矿,
减去雇佣花费300矿,加上初始的50矿,等于1014矿,达成了目标。
#####
问:至少需要多少时间才能收集到`10^{100}`点水晶矿?
#####
附加说明:除了目标是自行设定之外,以上所有数据全部来自《星际争霸1》游戏,并非胡编乱造。
为了方便大家解题,我把这个问题做成了一个游戏。
#####
下载以下两个附件:
解压后就可以玩这个游戏了。
注意:需要把两个压缩包放在一起,才可以将里面的文件解压出来。
#####
操作说明:
该游戏的目标是用尽可能短的时间采集到指定数量的资源。
如下图所示,所有用红色方框标出的地方都可以用鼠标点击。
此外,还可以使用以下键盘按键进行操作:
上、下、左、右、退格,回车
0,1,2,3,4,5,6,7,8,9
A,B,R,G,H,W,S,L
#####
如果是纯手工操作,建议完成$10^5$以内的小目标即可,否则需要耗费大量的操作。
如果想达成更高的目标,建议编写程序,生成操作脚本,然后使用游戏里的 “Load” 功能读取脚本。
如果达成了$10^100$的目标,请将成绩展示给大家,看看谁的用时最短。
10^100:o, 据说宇宙中的原子数也没这么多。 建议把基地改成矿井。要不都成基地分子了:L
供给站和矿井的关系不太明白。如果现在有 1 个矿井和 1 个 供给站,这个矿井就可以让18个工人同时采矿么?
还是一个矿井只有10个工位,只能容纳10人同时采矿,多的工人只能从事扩建工作?
页:
[1]