カメヲラボ

主にプログラミングとお勉強全般について書いてます

高精度で計算するには・・・

ヤバイ。苦手分野かも。
問題は、入力nに対して

exp( (n-2.0) * log(1.0-1.0/n) )

を計算するだけの問題だが、小数点以下は14桁まで計算しないといけないのでmath.hのexp関数等を使うと精度が足りない。

Discussの部分を見る限り、n=100000000の時に0.36787944668963(←これは高精度電卓で正確に計算した)を出力せねばならないようだ。数値計算についてはチラッと本に目を通した程度の勉強しかしていないので、ここらへんの知識は乏しい・・・。何から手をつけてよいやら。う〜む。詳しい人カモーン!!!!!