【基礎理論】桁数制限で溢れた小数が引き起こす!「丸め誤差」|情報処理問題1000本ノック
コンピュータにおける数値表現と計算誤差の超重要テーマ。指定された桁数(ビット数)に収めるために、最小桁より小さい部分を四捨五入・切捨て・切上げすることで生じる「丸め誤差」を攻略しましょう。
1. 【 問題 】:基礎理論(数値表現と計算誤差)
【 問題 】 コンピュータの数値計算で発生する誤差に関する記述です。計算結果を指定された有効桁数(ビット数)で表現する際、表現できる最小桁より小さい部分を四捨五入、切り捨て、または切り上げ処理(丸め処理)することによって生じる誤差は、次のうちどれか。
(ア)丸め誤差(Rounding Error)
(イ)情報落ち(Loss of Significance)
(ウ)桁落ち(Cancelation of Significance)
(エ)打ち切り誤差(Truncation Error)
2. 正解:
正解:(ア)丸め誤差(Rounding Error)
3. 解説:「限られた桁数に収めるための端数処理で生まれるズレ」
丸め誤差(Rounding Error)は、コンピュータが有限の桁数で小数を表現するために起こる最も基本的な計算誤差です。
例えば、1÷3 = 0.33333... のような無限小数を小数点以下3桁で打ち切って「0.333」と扱うと、本来の値との間に「0.00033...」のズレが発生します。このように端数処理(四捨五入や切り捨て)を行うことによって発生する誤差を指します。
| 誤差の名称 | 発生原因と特徴 |
|---|---|
| (ア)丸め誤差 | 指定桁数に収めるための四捨五入・切り捨て・切り上げ(丸め処理)で生じる誤差。 |
| (イ)情報落ち | 極端に絶対値の大きい数と小さい数の加減算で、小さい数の情報が消えてしまう現象。 |
| (ウ)桁落ち | 値のほぼ等しい2つの数の引き算を行い、有効桁数が大幅に減ってしまう現象。 |
| (エ)打ち切り誤差 | 無限に続く計算(極限計算やテイラー展開等)を途中で打ち切ることで生じる誤差。 |
1. 理解のコツ: 「レジの端数処理」に例えてみましょう。
・「税込 100.4円」を「100円(切り捨て)」として精算すると、0.4円のズレが発生します。
・このように、表記できる桁数や単位の都合で「端数をカット・丸めた結果生じる細かいズレ」が丸め誤差です。
2. 試験対策の視点: 基本情報技術者試験や応用情報技術者試験の「テクノロジ系(基礎理論・数値表現)」で必出の単元です。
問題文に「四捨五入」「切り捨て」「切り上げ」「指定された桁数に収める」「最小桁未満の処理」といったキーワードが出たら、迷わず丸め誤差を選択しましょう!
※「大きい数と小さい数の足し算 ➔ 情報落ち」「ほぼ同じ値の引き算 ➔ 桁落ち」との対比問題も超頻出です。
4. まとめ
「数値を出力・保持する際、指定された桁数枠に納める端数処理(四捨五入や切捨て等)によって生じる誤差」。これが丸め誤差です。情報落ち・桁落ち・打ち切り誤差との違いをセットで確実にマスターしておきましょう!