2002年 2月 1日 (金)

Moon.java …,微妙に誤差が出るので遂に print 文デバッグを開始。
元の C と Servlet の
Java の同じ箇所で変数の値を print して追いかける…。
 
結果: 敗北
 
小数点以下 4桁くらいはずう〜っと数値は合っているのだが,突然狂う。その箇所は数値の小数部分を求めているのだが,限りなく 3.0 に近い値の返数が C では僅かに 3 を越えていて限りなく 0 に近く Java では僅かに 3 に足りず,限りなく 1 に近い。
C と Java の double の計算の誤差だろう。
で,その 0.0000… と 0.9999… がその後の計算で大きく誤差になるみたい。
軌道の計算だか何だか全くもって理解できないコード…。
 
別の解を求めて Web を徘徊。
月齢の近似的な算出方法を発見。±1日の誤差があるとの事。
非常にシンプルに月齢が出る。 // ソースコードは整理した後に公開予定。
(今だと年数より 1987 を引いて 11 をかけて,2月だと 2を足して日を足す)
ガリガリと CPU に負担をかけて三角関数を駆使して結局誤差を生じるよりかマシだろうとコレを採用。
 
うん,なかなかいい精度。
ページトップに配置してみようかな? 地球ができてからだな…。
QRcode Tweet

このページの半分はフィクションです。もし同一の名称があった場合も,実在の人物・団体・事件などとはあんまり関係ありません。
CAPTCHA

[月インデックス] [単語インデックス] [コメントインデックス] [画像インデックス]
[TAKEchonNET] → [大いなる疲労の告知]
Donate us![TAKEchonNET]