本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和元年度 技術士第一次試験問題(再)【専門科目】

V−10

コンピュータで数値計算を実施する場合に、誤差が生じることがある。いま、0.01をコンピュータ内部で表現した値を100回足したところ答えが1にはならなかった。プログラム自体に誤りは無いとすると、1にならなかった原因の誤差として最も適切なものはどれか。なお、コンピュータ内部では数値を2進数で扱っており、0.01は2進数では循環小数で表現するものとする。

@ 丸め誤差

A 情報落ち誤差

B 桁落ち誤差

C オーバーフロー

D 打切り誤差


正解

@


解説

@ 正しい。丸め誤差は、指定された有効桁数で演算結果を表すために、切捨て、切上げ、四捨五入などで下位の桁を削除することによって発生する誤差のことである。

A 情報落ちは、絶対値の非常に大きな数値と小さな数値の加算や減算を行ったとき、小さい数値が計算結果に反映されないことによって発生する誤差のことである。

B 桁落ちは、浮動小数点演算で加算や減算を行う場合に、計算結果が0に近くなり、有効桁数が極端に減少することである。

C オーバーフローは、扱える数値範囲の最大値を超えてしまうことである。

D 打ち切り誤差は、無限級数で表される数値の計算処理を有限項で打ち切ったことによって発生する誤差のことである。0.01は2進数では循環小数で表現するため、打切り誤差には該当しない。

V−9 目次 V−11