問題
問2
浮動小数点数演算において、表現できる桁数に限りがあるために、計算結果の最下位桁よりも小さい部分が切り捨てられたり、四捨五入されたりすることによって生じる誤差はどれか。
- 桁落ち
- 丸め誤差
- 情報落ち
- オーバーフロー
正解
正解は「イ」です。
解説
この問題の正解は「丸め誤差」です。コンピュータ内部では、数値を表現できる桁数(メモリのサイズ)に上限があります。そのため、割り算などで無限に続く小数(例: 1/3 = 0.333…)を扱う場合、どこかの桁で打ち切る必要があります。このとき、最下位桁より下の部分を切り捨てたり四捨五入したりすることで生じる、本来の値とのわずかな差が丸め誤差です。
例えば、電卓で「10 ÷ 3」を計算すると「3.3333333」のように表示されますが、これは無限に続く3を途中で丸めているため、厳密な値ではありません。この微小なズレが丸め誤差であり、問題文の「計算結果の最下位桁よりも小さい部分が切り捨てられたり、四捨五入されたりすることによって生じる誤差」という説明に合致します。
ア(桁落ち):
値がほぼ等しい二つの数の引き算で、有効桁数が大幅に減ってしまう誤差です。
ウ(情報落ち):
非常に大きい数と非常に小さい数を足したり引いたりした際に、小さい方の数が計算結果に反映されず無視されてしまう誤差です。
エ(オーバーフロー):
計算結果が、コンピュータが表現できる数値の最大値を超えてしまうことです。誤差ではなくエラーの一種です。
解法のポイント
この問題を解くには、コンピュータの数値計算で発生する代表的な誤差の種類を理解しておく必要があります。問題文の「桁数に限りがある」「最下位桁よりも小さい部分が切り捨てられたり、四捨五入されたりする」という表現が「丸め誤差」を直接的に説明しています。桁落ち、情報落ち、丸め誤差はセットで覚えるのが効果的です。それぞれの誤差がどのような計算(桁落ち→ほぼ等しい数の引き算、情報落ち→極端に差がある数の足し算)で発生するのか、具体的な例と関連付けて記憶すると、違いが明確になり、正解を選びやすくなります。
用語補足
浮動小数点数:
コンピュータで小数や非常に大きな数・小さな数を表現するための一つの形式です。「符号」「仮数」「指数」の3つの部分に分けて数値を表現します。
桁落ち:
例えば、3.14159265と3.14159260の引き算を行うと、結果は0.00000005となり、有効な数字が大幅に減ってしまう現象です。重要な情報が失われるため「桁が落ちる」と表現されます。
情報落ち:
例えば、1億に0.0001を加える計算を考えます。コンピュータの桁数制限により、0.0001のような小さい値が無視され、計算結果が1億のままになってしまう現象です。
オーバーフロー:
8ビットで表現できる最大の整数が255の場合に、255 + 1 を計算すると、結果が0に戻ってしまうような現象です。容器から水が溢れるイメージです。


