稜鏡

稜鏡

中等

簡介

你是 PRISM(Precariously Redirected Illumination Safety Management)的研究員,使用一套精密雷射校準系統來測試實驗性的水晶稜鏡。 這些水晶是為下一代光學電腦所開發的,每一顆都因其分子結構而有獨特的折射特性。 實驗室的雷射系統一旦讓水晶受到意料之外的光照,就可能損壞它們,因此精確預測光路至關重要。

說明

在啟動雷射陣列之前,你必須預測水晶被擊中的確切順序,並以它們的樣本 ID 辨識。

範例測試案例

看看這個水晶陣列的配置:

{
  "start": { "x": 0, "y": 0, "angle": 0 },
  "prisms": [
    { "id": 1, "x": 10, "y": 10, "angle": -90 },
    { "id": 2, "x": 10, "y": 0, "angle": 90 },
    { "id": 3, "x": 30, "y": 10, "angle": 45 },
    { "id": 4, "x": 20, "y": 0, "angle": 0 }
  ]
}

發生了什麼事

雷射從原點(0, 0)出發,以 0° 的角度水平向右發射。 以下是光束路徑的逐步說明:

步驟 1:光束沿著 x 軸(y = 0)前進,並在位置(10, 0)首次遇到水晶 #2。 這顆水晶的折射角度是 90°,也就是讓光束垂直於目前的路徑轉向。 光束原本以 0° 前進,現在被轉向 90°(正上方)。

步驟 2:光束現在從位置(10, 0)垂直向上前進,並在位置(10, 10)擊中水晶 #1。 這顆水晶的折射角度是 -90°,會讓光束相對於目前的方向轉 -90°。 光束原本以 90° 前進,所以折射後變成 0°(90° + (-90°) = 0°),再次水平向右前進。

步驟 3:光束從位置(10, 10)水平前進,並在位置(30, 10)遇到水晶 #3。 這顆水晶讓光束折射 45°,把方向改變成 45°。 光束繼續前進,進入陣列之外的空間。

「顯示雷射光束經過三個稜鏡折射後路徑的圖表。」「顯示雷射光束經過三個稜鏡折射後路徑的圖表。」


出處

FraSanga連結會在新視窗或分頁中開啟
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Go Exercism

準備好開始 稜鏡 了嗎?

註冊 Exercism,透過 34 個概念165 個練習 和真人引導來學習並精通 Go,全部免費。