【基礎理論】ほぼ等しい数値の引き算で有効桁数が消え去る!「桁落ち」|情報処理問題1000本ノック
コンピュータにおける数値表現と計算誤差の超重要テーマ。値が非常に近い2つの数値同士で引き算を行った際、有効桁数が大幅に減少してしまう「桁落ち」の現象を攻略しましょう。
1. 【 問題 】:基礎理論(数値表現と計算誤差)
【 問題 】 浮動小数点数の計算で発生する誤差に関する記述です。値がほぼ等しい2つの数値同士で引き算(減算)を行った際、計算結果の上位の有効数字が互いに打ち消し合って失われ、有効桁数が大幅に少なくなってしまう現象は、次のうちどれか。
(ア)丸め誤差
(イ)情報落ち
(ウ)桁落ち(Cancelation of Significance)
(エ)打ち切り誤差
2. 正解:
正解:(ウ)桁落ち(Cancelation of Significance)
3. 解説:「ほぼ同じ数字の引き算で上位桁が消滅する!」
桁落ち(Cancelation of Significance)は、値が非常に近い浮動小数点数同士の引き算を行ったときに起こる誤差です。
例えば、有効数字4桁で「1.234 - 1.233」という計算を行うと、結果は「0.001」となります。これを正規化(浮動小数点の表現形式)すると「1.000 × 10⁻³」のようになりますが、後半の「000」は計算精度を保障するデータではなく、単に桁を合わせるために補われたゼロ(無意味な値)に過ぎません。その結果、本来4桁あった有効数字が実質1桁に激減してしまう現象を指します。
| 誤差の名称 | 発生する計算条件 | 特徴・キーワード |
|---|---|---|
| (ウ)桁落ち | 「値のほぼ等しい2数」の引き算 | 有効桁数(有効数字)が大幅に減少する。 |
| (イ)情報落ち | 「絶対値が極端に異なる2数」の足し引き | 小さい方の数値のデータが無視・無視される。 |
| (ア)丸め誤差 | 最小桁数枠へ収める端数処理 | 四捨五入・切り捨て・切り上げによるズレ。 |
| (エ)打ち切り誤差 | 無限計算の途中終了 | 数学的な極限や繰り返し処理を途中でやめる。 |
1. 理解のコツ: 「精密な秤(はかり)」で例えてみましょう。
・「100.0001 kg」と「100.0000 kg」という2つの非常に近い重さを引き算すると、差は「0.0001 kg(0.1 g)」になります。
・元の数字の上位5桁(100.00)がごっそり消えてしまい、残ったわずかな小数部のデータだけで表さなければならなくなるため、相対的な計算精度が一気に低低下します。
2. 試験対策の視点: 基本情報技術者試験や応用情報技術者試験で非常に良く問われるテーマです。
問題文に「値のほぼ等しい(近い)数値」「引き算(減算)」「有効桁数が減る(失われる)」というキーワードがあれば、迷わず桁落ちを選択しましょう!
4. まとめ
「値がほぼ等しい2つの数値同士で引き算を行った際、有効桁数が激減してしまう現象」。これが桁落ちです。「絶対値が極端に離れた2数の加減算で小さい方が消える『情報落ち』」との違いをセットで完璧にマスターしておきましょう!