戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2015年 春期 午前(科目A)02


問題文

桁落ちの説明として、適切なものはどれか。

選択肢

値がほぼ等しい浮動小数点数同士の減算において、有効桁数が大幅に減ってしまうことである。(正解)
演算結果が、扱える数値の最大値を超えることによって生じるエラーのことである。
浮動小数点数の演算結果について、最小の桁よりも小さい部分の四捨五入、切上げ又は切捨を行うことによって生じる誤差のことである。
浮動小数点数の加算において、一方の数値の下位の桁が結果に反映されないことである。

🔒 解説は解答すると表示されます

桁落ち(キャンセレーション誤差)【午前解説】

正解の理由

選択肢アは「値がほぼ等しい浮動小数点数同士の減算において、有効桁数が大幅に減ってしまうことである。」と述べており、桁落ち(catastrophic cancellation)の典型的かつ正確な定義を示しています。
浮動小数点は仮数部に有限桁しか持たないため、ほぼ等しい数同士の減算では有効な上位桁が相殺され、結果の有効桁数が急激に減少して誤差が相対的に増大します。これは桁落ちを最も端的に表す説明です。

解法ステップ

  1. 問題文のキーワードを確認:「値がほぼ等しい」「減算」「有効桁数が減る」。
  2. 桁落ちの定義(catastrophic cancellation)はまさに「ほぼ等しい数の減算で生じる有効桁の喪失」であることを思い出す。
  3. 他選択肢と照合:イはオーバーフロー、ウは丸め(切り捨て・切り上げ)や打ち切り誤差、エは加算における小数部の吸収を説明しており、桁落ちの定義と一致しないことを確認する。
  4. 最終的に選択肢アが正しいと判定する。

選択肢別の誤答解説

  • : 正解。値がほぼ等しい浮動小数点数同士の減算で有効桁が失われる現象、すなわち桁落ち(catastrophic cancellation)を正しく表現しています。
  • イ: 誤り。演算結果が表現可能な最大値を超えるのは「オーバーフロー(溢れ)」であり、桁落ちとは別の現象です。
  • ウ: 誤り。最小桁より小さい部分を四捨五入・切上げ・切捨てることで生じる誤差は一般に「丸め誤差(rounding error)」や「切り捨て誤差」と呼ばれるもので、桁落ちの定義とは異なります。
  • エ: 誤り。加算で一方の数値の下位桁が結果に反映されない現象は「吸収(absorption)」や丸めによる無視に相当し、典型的な桁落ち(ほぼ等しい数の減算)とは区別されます。

よくある誤解

  • 桁落ちを「単なる丸め誤差」と混同する誤解: 丸め誤差は一般的な誤差の総称であり、桁落ちは特に“差が小さい減算”に伴う有効桁の喪失を指します。
  • 桁落ちは「加算でも同様に起きる」との誤解: 加算で小さい数が無視される現象はあるが、桁落ち(catastrophic cancellation)は主に減算で顕著です。加算での無視は「吸収(absorption)」や丸めによる消失と呼ばれることが多いです。
  • 「高精度にすれば問題ない」と考える誤解: 高精度で軽減できますが、根本対策は式の変形(打ち消しを避ける)や補償アルゴリズムの適用です。

補足コラム

桁落ちは数値計算で致命的な誤差源になり得ます。実例として二次方程式の解の公式: の場合、減算による桁落ちが起きやすく、数値解の精度が著しく低下します。この問題には式の変形(例えば別の公式を使う)や高精度演算、補償アルゴリズムの適用が有効です。
Pythonでの簡単なデモ(浮動小数点精度の喪失を確認):
a = 1.234567890123456
b = 1.234567890123455
print(a - b)  # 浮動小数点では小さい差の精度が失われる
対策例:
  • 数式の代替表現で減算を避ける
  • 高精度ライブラリ(decimal, mpmath)や倍精度以上(longdouble)の利用
  • Kahan 和などの補償アルゴリズム

FAQ

Q1: 桁落ちは必ず悪影響を及ぼしますか?
A1: 必ずしもそうではありません。差の絶対誤差が小さくて目的に対して十分なら問題になりません。ただし相対誤差や下流計算への影響を考慮する必要があります。
Q2: 桁落ちを学ぶ上で押さえるべき指標は何ですか?
A2: 絶対誤差、相対誤差、有効数字(有効桁数)を区別して考えることが重要です。
Q3: 桁落ちを完全に防げますか?
A3: 完全に防ぐことは難しいですが、式変形、高精度演算、補償手法で実用上は十分に抑えられます。

関連キーワード: 浮動小数点, 桁落ち, 丸め誤差, オーバーフロー, 吸収, 打ち消し, Kahan 和, 有効桁数, 数値解析, 精度管理
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について