Map the Debris
計算所在海拔的軌道週期,軌道周期指一顆行星(或其他天體)環繞軌道一周需要的時間。(from wikipedia entry),奢熱資料有name跟avgAlt(平均海拔高度)
function orbitalPeriod(arr) {
var GM = 398600.4418;
var earthRadius = 6367.4447;
var radius;
var orbitalPeriod;
var result = [];
arr.forEach(function(emt)
{
radius = earthRadius + emt.avgAlt ;
orbitalPeriod = Math.round( 2* Math.PI * Math.pow(Math.pow(radius, 3)/GM, 0.5) ); //Math.pow(base, expon)
result.push({"name":emt.name, "orbitalPeriod": orbitalPeriod });
});
return result;
}
orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}]);
orbitalPeriod([{name: "iss", avgAlt: 413.6}, {name: "hubble", avgAlt: 556.7}, {name: "moon", avgAlt: 378632.553}]);
測試的正確結果
orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}]) 应该返回 [{name: "sputnik", orbitalPeriod: 86400}].orbitalPeriod([{name: "iss", avgAlt: 413.6}, {name: "hubble", avgAlt: 556.7}, {name: "moon", avgAlt: 378632.553}]) 应该返回 [{name : "iss", orbitalPeriod: 5557}, {name: "hubble", orbitalPeriod: 5734}, {name: "moon", orbitalPeriod: 2377399}].
Solution:
這題要用天文學中繞中心天體在圓形或者橢圓軌道上運轉的小天體軌道周期相關的天文物理學知識來解題,所幸題目已經給了Wikipedia的軌道周期的條目了,我們只要照著下面公式帶入計算就可以知道天體在圓形或橢圓形軌道運行的週期,也就是繞一圈需要多久的時間,公式如下:
**P.S. / Reference: Math.pow()
wiki entry about orbital period
標準重力參數