プログラミング時に注意すべき点の一つに,計算精度の問題があります. たとえばC/C++だと,doubleで計算しても有効桁数は15桁程度(10進数で)しかありません.その結果,以下のような状況で間違った計算結果が出てしまいます. 取り扱う数値が15桁を越える場合 取り扱う数値が7桁を越える場合 たとえば8桁同士の掛け算が行われるとその結果は最大16桁になります.double型の変数には15桁程度の情報しか保存できないので,下位1桁の情報は棄てられます. 取り扱う数値の最大値と最小値に,15桁の以上の差がある場合 たとえばC言語のdouble型で(1.0 + 1e-16)を計算すると結果は 1.0 になります. これら計算精度の問題を避ける方法の一つにGMPというライブラリを使う方法があります。以下ポイントをまとめます。 GMPとは GMP(GNU Multiple Precision li
![任意精度計算ライブラリ(GMP)の使い方 - pyopyopyo - Linuxとかプログラミングの覚え書き -](https://cdn-ak-scissors.b.st-hatena.com/image/square/bffee4df7f39279fbfe81277dc0b5c4c2aea57fa/height=288;version=1;width=512/http%3A%2F%2Fecx.images-amazon.com%2Fimages%2FI%2F41Svs5BPNeL.jpg)