対象試験と出題頻度
誤差(桁落ち・情報落ち・丸め誤差)は、基本情報技術者・応用情報技術者で出題されるテーマです。
「次の誤差の説明として適切なものはどれか」という形式で、4種類の誤差を正確に区別できるかが繰り返し問われています。
FE H27春期 午前問2、AP H31春期 午前問2、FE R7年度 科目A 問2など、試験区分をまたいで定番化している頻出論点です。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★★☆
ランクA(重要)必ず覚えておくべき
用語の定義
情報処理試験を勉強していると、「桁落ち?情報落ち?丸め誤差?名前が似すぎてどれがどれかわからない」と混乱しがちです。
誤差(計算誤差)とは、一言で言うと
「コンピュータが有限のビット数で数値を扱うことで、本来の値とのズレが生じる現象の総称」
のことです。
イメージとしては、「メモリという名の小さな箱に、はみ出す数値を無理やり詰め込むときにこぼれ落ちる情報」です。
家庭の冷蔵庫に食材を詰め込むとき、入りきらない分は捨てるか、押し込んで形が崩れるか、そもそも入れる順番で結果が変わります。
コンピュータの数値表現でも同じことが起きており、「どこで・なぜこぼれたか」によって誤差の名前が変わります。
📊 コンピュータで発生する主な誤差一覧
| 誤差の種類 | 一言で言うと | 日常の例え |
|---|---|---|
| 桁落ち | ほぼ等しい値同士の減算で有効桁数が激減する | 体重80.05kgと80.02kgの差→0.03kgしか残らず精度が落ちる |
| 情報落ち | 絶対値の差が極端に大きい2数の加減算で、小さい方が無視される | 100億円の予算に1円を足しても帳簿上は100億円のまま |
| 丸め誤差 | 有限桁に収めるため四捨五入・切捨てで生じるズレ | 1÷3=0.333…を小数第2位で打ち切ると0.33になる |
| 打切り誤差 | 無限に続く計算を途中で打ち切ることで生じるズレ | 円周率の計算を100桁目で止めると101桁目以降がなくなる |
解説
コンピュータは浮動小数点数で実数を表現します。
浮動小数点数は「符号部・指数部・仮数部」の有限ビットで構成されるため、表現しきれない端数が必ず発生します。ここから各誤差の仕組みを掘り下げます。
桁落ちの仕組み
絶対値がほぼ等しい2数の減算を行うと、上位桁が相殺されて結果の有効桁数が大幅に減少します。
桁落ちの計算例(有効桁数8桁)
1.2345678 − 1.2345670 = 0.0000008
→ 正規化すると 8.0 × 10−7(有効桁数は 1桁 に激減)
元の数値は8桁の精度を持っていたのに、結果はわずか1桁。この「桁が落ちる」現象が名前の由来です。対策としては、数学的に式を変形して減算を避ける「分子の有理化」が知られています。
情報落ちの仕組み
絶対値が極端に異なる2数の加減算では、指数部を合わせる際に小さい方の仮数部が右にシフトされ、下位桁が仮数部の範囲外にはみ出して消失します。
情報落ちの計算例(有効桁数4桁)
1.000 × 108 + 5.000 × 100
→ 桁合わせ:1.000 × 108 + 0.00000005 × 108
→ 0.00000005 は有効桁4桁に入りきらず 消失
→ 結果:1.000 × 108(5が反映されない)
対策は「絶対値の小さい数から順に加算する」ことです。FE H17春期 午前問4でもこの対策手法が直接出題されています。
丸め誤差の仕組み
数値を有限ビットに格納する際、表現しきれない下位桁を四捨五入・切捨て・切上げすることで生じるズレです。
10進数の0.1は2進数では0.00011001100…と無限循環小数になり、どこかで打ち切らざるを得ません。この打ち切り操作そのものが丸め誤差の原因です。
打切り誤差との違い
丸め誤差と混同されやすいのが打切り誤差です。
打切り誤差は、本来は無限に続く級数計算やニュートン法などの反復計算を途中で終了したことで生じます。丸め誤差が「数値の格納時」に起きるのに対し、打切り誤差は「計算手順の途中終了時」に起きる点が決定的に異なります。
▶ 4種類の誤差を一発で見分けるフローチャート(クリックで展開)
【判定フローチャート】
① 問題文に「ほぼ等しい値の減算」とあるか?
→ YES → 桁落ち
② 問題文に「絶対値の差が大きい2数の加減算」とあるか?
→ YES → 情報落ち
③ 問題文に「四捨五入・切捨て・切上げ」「有限桁で表現」とあるか?
→ YES → 丸め誤差
④ 問題文に「無限級数の途中打ち切り」「反復計算の終了」とあるか?
→ YES → 打切り誤差
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 誤差の核心を3行で
・桁落ち=ほぼ等しい値の減算で有効桁が激減する現象
・情報落ち=絶対値の差が大きい2数の加減算で小さい方が消える現象
・丸め誤差=有限桁に収めるときの四捨五入・切捨てで生じるズレ。打切り誤差は「計算の途中終了」で生じる点が異なる
試験ではこう出る!
誤差の問題は、FE・APの午前(科目A)序盤で繰り返し出題されている定番テーマです。
出題形式は「〇〇誤差の説明として適切なものを選べ」がほぼ100%を占めます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| FE R7年度 科目A 問2 |
丸め誤差の説明として適切なものを選ぶ問題。 | ・「有限桁で表現するため下位桁を切捨て・切上げ」が正解 ・桁落ち・情報落ち・オーバーフローがひっかけ |
| AP H31春 午前 問2 |
桁落ちによる誤差の説明として適切なものを選ぶ問題。 | ・「ほぼ等しい2数の差→有効桁数減少」が正解 ・丸め誤差・情報落ち・打切り誤差の説明が選択肢に並ぶ |
| FE H27春 午前 問2 |
桁落ちの説明として適切なものを選ぶ問題。 | ・AP H31春 問2と同一構成の流用問題 ・選択肢にオーバーフローの説明が追加 |
| AP R4春 午前 問1 |
仮数部7ビットの浮動小数点形式で情報落ちが発生しない計算式を選ぶ問題。 | ・定義問題ではなく計算型 ・指数部の桁合わせ後に仮数部が7ビットに収まるかを判定 |
| FE H17春 午前 問4 |
「絶対値の小さいものから順に加算する」対策が抑制する誤差を選ぶ問題。 | ・正解は情報落ち ・対策手法と誤差の種類を結びつける応用型 |
📝 IPA試験での出題パターン
パターン1:「〇〇誤差の説明として適切なものを選べ」
4つの誤差の説明文が選択肢に並び、指定された誤差に該当するものを選ぶ形式。桁落ちが最頻出で、次いで丸め誤差。ひっかけは「桁落ちと情報落ちの入れ替え」が最多。前述のフローチャートのキーワードを押さえれば即答できる。
パターン2:「対策手法から誤差の種類を特定する」
FE H17春 問4のように、対策の記述から逆算して誤差を当てる形式。「小さい順に加算→情報落ち」「分子の有理化→桁落ち」を覚えておけば得点できる。
試験ではここまででOKです。オーバーフロー(桁あふれ)やアンダーフローは選択肢には登場しますが、単体で正解になるケースは稀なので深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. 浮動小数点演算において、絶対値の非常に大きな数と小さな数の加算を行ったとき、小さな数の有効桁の一部または全部が結果に反映されない誤差はどれでしょうか?
- A. 値がほぼ等しい浮動小数点数同士の減算で、有効桁数が大幅に減少することによって生じる桁落ち。
- B. 絶対値の大きな数と小さな数の加減算で、小さな数の有効桁が結果に反映されないことによって生じる情報落ち。
- C. 数値を有限桁で表現する際に、最下位桁より小さい部分を切捨て・切上げすることによって生じる丸め誤差。
正解と解説を見る
正解:B
解説:
情報落ちは、浮動小数点演算で指数部を合わせる際に、絶対値の小さい数の仮数部が右シフトされて有効桁が仮数部の範囲外に押し出されることで発生します。「絶対値の差が大きい+加減算+小さい方が消える」の3点が判定キーワードです。
選択肢Aは桁落ちの説明です。「ほぼ等しい値の減算→有効桁の減少」が桁落ちの特徴であり、絶対値の差が大きい2数の加算とは状況が逆です。選択肢Cは丸め誤差の説明です。格納時の端数処理に起因するズレであり、2数の加減算の文脈で発生する現象ではありません。
よくある質問(FAQ)
Q. 桁落ちを防ぐ「分子の有理化」とは具体的にどうすることですか?
ほぼ等しい値の減算が発生する式を、数学的に等価な別の式に変形して減算を回避する手法です。代表的な例は、√(x+1) − √x をそのまま計算する代わりに、分子・分母に √(x+1) + √x を掛けて 1 / (√(x+1) + √x) に変形します。変形後は加算のみになるため桁落ちが起きません。IPA試験では式変形の計算問題としては出題されませんが、「対策として分子の有理化がある」という知識が問われることがあります。
Q. プログラミングで丸め誤差が実際に問題になる場面はありますか?
金額計算で頻繁に問題になります。例えば、Pythonで 0.1 + 0.2 を実行すると 0.30000000000000004 と表示されます。これは0.1や0.2が2進数では無限循環小数になり、浮動小数点数で正確に表現できないためです。会計システムや金融系ソフトウェアでは、Decimal型(10進固定小数点数)を使って丸め誤差を回避するのが常識です。
Q. オーバーフロー(桁あふれ)は誤差に含まれますか?
含まれる場合と含まれない場合があります。IPAのシラバスでは「桁落ち・情報落ち・丸め誤差・打切り誤差」の4つを演算誤差として分類しており、オーバーフロー(演算結果が表現可能な最大値を超える現象)やアンダーフロー(最小値を下回る現象)は別枠として扱われています。過去問の選択肢にはオーバーフローの説明が紛れ込むことが多いので、4種類の誤差と区別できるようにしておくと安全です。
Q. 誤差の問題は暗記だけで対応できますか?
定義問題(パターン1)は暗記で即答できます。しかし、AP R4春 問1のような計算型や、FE H17春 問4のような対策手法から逆引きする応用型は、仕組みを理解していないと正解を導けません。各誤差の「どの演算で・なぜ起きるか」まで踏み込んで理解しておくことを推奨します。