基礎理論
浮動小数点演算で丸め誤差が累積する典型的な状況として最も適切なものはどれか。
ア.非常に大きな数と非常に小さな数を繰り返し加算する正解
イ.同じ数を2回乗算する
ウ.整数どうしの加算を繰り返す
エ.2の累乗数を乗算する
解説
丸め誤差の累積は「砂粒のような小数部分が大きな海(大きな数)に飲み込まれる」現象。1億に0.000001を1万回足すと理論上0.01増えるはずが、浮動小数点では0.000001が有効桁から消えてしまい全く加算されないことがある。砂粒が海に消えるように、小さい数が大きな数の陰に隠れてしまう!
なぜ ア が正解か
浮動小数点加算で大きな数(例:1.0×10^8)と小さな数(例:1.0×10^-8)を足す場合、指数を合わせる過程で小さな数の有効桁が失われる(桁落ち・情報落ち)。これを繰り返すと誤差が累積。これは「情報落ち(cancellation)」と呼ばれる典型的な丸め誤差蓄積パターン。数値計算では加算順序の工夫(小さい数から足す)が対策になる。
出典: AI生成問題(学習用)