2017-04-05 59 views
1

这与“跳伞机器人”之谜有些不同。有两个机器人挂在无限的线上。它们的距离不是相对的,因此它们相距5米或5公里并不重要。假设你需要为了两个机器人进行编程,以满足在磁体和唯一的选择,您都分别是:两个机器人无限长

  • 一个向左移动
  • 一个向右移动
  • 两个移动到左
  • 两个向右移动
  • 停下来检查,如果机器人是在磁铁

机器人将不知道是否已经有旁边TH e磁铁,移动一个机器人也会将另一个机器人移向同一个方向。为两个机器人在磁体上相遇制定一个算法。

我无法为这个问题提出解决方案,难道有解决方案吗?

+4

如果他们总是朝着同一个方向前进,他们怎么能见面呢?这是否意味着他们的初始距离得以保留? –

+0

@NicoSchertler这就是要求的,我也对 – Cham

回答

1

我觉得这两个机器人可以运行同一程序:

var steps = 10, count = 10, left = true; 
while (!isRobotOnMagnet()) { 
    if (count-- > 0) 
     if (left) 
      oneMoveLeft(); 
     else 
      oneMoveRight(); 
    else { 
     steps *= 2; 
     left = !left; 
     count = steps; 
    } 
} 

不是最优雅的方式来制定它,还有改进的余地。这个想法是向左走一些步骤,然后将量增加一倍,然后再增加一倍到左边,等等......你最终会找到磁铁。

+0

这个问题感到困惑是的,这是正确的机器人可以运行相同的程序 – Cham

+0

机器人将如何在磁铁会面?只有一个人会触摸它,但不是你的答案都是对的? – Cham

+1

没有最终两个都会在磁铁上结束,因为机器人在磁铁上时停止,但另一个继续运行。他们运行相同的程序,但每个都在自己的计算机上。 – maraca