じょうほうおち
情報落ち
浮動小数点演算において、絶対値が極端に異なる数値の加減算を行う際、小さい方の値が指数の桁合わせの過程で切り捨てられ、結果に反映されなくなる現象です。
詳しい説明
情報落ちとは、浮動小数点演算において、絶対値が極端に異なる2つの数を加減算した際に、絶対値の小さい方の値が無視されて計算結果が失われてしまう現象です。コンピュータ内部で数値を表現する際に、指数の桁を合わせる処理を行うため、有効桁数を超えた小さな値の情報が切り捨てられてしまうことが原因です。
例えば、非常に大きな数値に非常に小さな数値を足す場合、大きな数値の指数に合わせて小さな数値の桁をシフトさせます。このとき、小さな数値の有効桁が範囲外に追い出されてしまい、計算結果に全く反映されなくなります。これはコンピュータの浮動小数点表現の制約から逃れられない物理的な限界といえます。
基本情報技術者試験では、桁落ちとの違いがよく問われます。桁落ちが有効桁数そのものが減少する問題であるのに対し、情報落ちは小さい値が無視されて消失する現象です。プログラムの精度を確保するためには、こうした演算誤差が発生しないような計算順序の工夫やアルゴリズムの選定が求められます。
試験で問われること
基本情報技術者試験
- 情報落ちが発生する条件(絶対値の大きく異なる値の加減算)を覚える。
- 桁落ちとの違い(加減算時の有効桁の消失と、絶対値の差による消失)を区別する。
- 計算順序を工夫することで精度低下を防ぐ手法の理解が問われる。