2017-04-05 53 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