學習軌道
/
Arturo
Arturo
/
練習
/
太空時代
太空時代

太空時代

中等

簡介

現在是 2525 年,你剛剛展開一趟旅程,要造訪太陽系的所有行星(水星、金星、地球、火星、木星、土星、天王星和海王星)。 第一站是水星,當地的海關要求你填寫一份表格(官僚作風看來_不是_地球獨有的)。 當你把表格交給海關人員時,對方仔細端詳,皺起了眉頭。 「你_真的_以為我會相信你只有 50 歲嗎? 你應該接近 200 歲了吧!」

你覺得好笑,等著海關人員笑出來,但對方看起來是認真的。 你這才意識到,你填的年齡是_地球年_,但對方期待的是_水星年_! 由於水星繞行太陽的公轉週期比地球短得多,換算成水星年,你其實老得多。 經過一番快速計算,你順利提供了以水星年計算的年齡。 海關人員滿意地笑了笑,揮手讓你通過。 你在心裡記下,以後面對海關檢查_之前_,要先算好自己在各行星上的年齡,以免再發生這種混淆。

Note

如果你想知道為什麼冥王星沒有入列,去看看這部 YouTube 影片。

說明

給定以秒為單位的年齡,計算某個人在太陽系某顆行星上的年齡會是多少。

一個地球年等於 365.25 個地球日,也就是 31,557,600 秒。如果有人告訴你某人的年齡是 1,000,000,000 秒,換算後會是 31.69 地球年。

至於其他行星,你必須考量它們以地球年為單位的公轉週期:

行星 以地球年為單位的公轉週期
Mercury 0.2408467
Venus 0.61519726
Earth 1.0
Mars 1.8808158
Jupiter 11.862615
Saturn 29.447498
Uranus 84.016846
Neptune 164.79132
Note

地球繞太陽完整公轉一圈的實際長度比較接近 365.256 天(1 恆星年)。 格里曆平均每年有 365.2425 天。 雖然 365.25 並不百分之百精確,但這是本練習採用的數值。 關於更多計算一年的方式,請參閱維基百科上的「年」。

Arturo 專屬資訊

在這個練習中,你需要使用帶有自訂單位的[物理量]來回傳年齡,該單位代表該行星上一年的長度。 在 Arturo 中,一個量值由數值量和相關的測量單位組成。

length: 10`m
units length ; `m
scalar length ; 10

10`m * 10`m ; 100 m²
Caution

Arturo 內建的 `yr 單位會轉換成 31556952 秒。 因此,你需要以先前在操作說明中提到的秒數為基準,定義並使用自己的年度單位。

量值可以轉換成另一個相容的單位。

convert 1`m `ft ; 1250/381 ft
convert 100`m2 `ft2 ; 156250000/145161 ft²

property `m  ; length
property `m2 ; area

convert 1`m `m2 ; conversion error results
Note

由於浮點數的精確度限制,Arturo 有時會將純量儲存為有理數。 你可以改用 to函式,以近似浮點數的形式取得該數值。

length: convert 1`m `ft ; 1250/381 ft
to :floating length ; 3.280839895013123

Arturo 也允許我們 specify 自己的量值單位。

specify 'nauMile 1.151`mi
property `nauMile length
specify 'lea 3.00579`nauMile
property `lea ; length
depth: 20000`lea
convert depth `km ; 111355.7993425152 km
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Arturo Exercism

準備好開始 太空時代 了嗎?

註冊 Exercism,透過 79 個練習 和真人引導來學習並精通 Arturo,全部免費。