応用情報技術者 2022年 春期 午前2 問01
問題文
浮動小数点数を、仮数部が7ビットである表示形式のコンピュータで計算した場合、情報落ちが発生しないものはどれか。ここで、仮数部が7ビットの表示形式とは次のフォーマットであり、内は2進数、Y は指数である。また、{ }内を先に計算するものとする。
選択肢
ア:(正解)
イ:
ウ:
エ:
浮動小数点数の計算における情報落ちの判定【午前2 解説】
要点まとめ
- 結論:仮数部7ビットの浮動小数点数で情報落ちが起きないのは選択肢アです。
- 根拠:計算順序と指数の差により、仮数部の精度内で正確に加算できるかが決まるためです。
- 差がつくポイント:指数の大きな数同士を先に計算し、小さな数を後で加えることで情報落ちを防げます。
正解の理由
選択肢アは、まず指数が近い小さい数同士 と を先に計算し、その結果に大きな指数の を加えています。
この順序ならば、指数差が小さい部分での計算は仮数部7ビットの精度内で正確に行え、最後に大きな数を加えても情報落ちが起きません。
他の選択肢は大きな指数の数同士を先に計算し、小さい数を後で加えるため、指数差が大きく仮数部の精度を超えた情報落ちが発生します。
この順序ならば、指数差が小さい部分での計算は仮数部7ビットの精度内で正確に行え、最後に大きな数を加えても情報落ちが起きません。
他の選択肢は大きな指数の数同士を先に計算し、小さい数を後で加えるため、指数差が大きく仮数部の精度を超えた情報落ちが発生します。
よくある誤解
指数の大きい数を先に計算すれば良いと考えがちですが、指数差が大きい加算は小さい数の情報が失われやすいです。
また、単純に加算の順序を無視すると情報落ちの判断を誤ります。
また、単純に加算の順序を無視すると情報落ちの判断を誤ります。
解法ステップ
- 各数の指数を確認し、指数差を計算する。
- 指数差が小さい数同士を先に計算し、仮数部の精度内で加算できるか判断する。
- その結果に対して指数差の大きい数を加算し、情報落ちが起きないか確認する。
- 情報落ちが起きない計算順序を選択肢から選ぶ。
選択肢別の誤答解説
- ア: 指数差の小さい数同士を先に計算し、情報落ちが起きない正しい順序
- イ: 小さい数同士の減算後に大きな数を加えるが、減算で仮数部の精度が低下し情報落ちの可能性あり
- ウ: 大きな指数の数同士を先に加算し、小さい数を後で加えるため指数差が大きく情報落ちが発生
- エ: 大きな指数の数同士の減算後に小さい数を加えるため、指数差が大きく情報落ちが起きやすい
補足コラム
浮動小数点数の計算では、指数差が大きい数同士の加減算は小さい数の情報が失われる「情報落ち」が起きやすいです。
仮数部のビット数が限られているため、計算順序を工夫し指数差の小さい数同士を先に計算することが重要です。
これは数値計算の安定性を保つ基本的なテクニックであり、科学技術計算や金融計算でも応用されます。
仮数部のビット数が限られているため、計算順序を工夫し指数差の小さい数同士を先に計算することが重要です。
これは数値計算の安定性を保つ基本的なテクニックであり、科学技術計算や金融計算でも応用されます。
FAQ
Q: なぜ指数差が大きいと情報落ちが起きるのですか?
A: 指数差が大きいと小さい数の仮数部が大きい数の桁に合わせてシフトされ、仮数部のビット数制限で切り捨てられるためです。
A: 指数差が大きいと小さい数の仮数部が大きい数の桁に合わせてシフトされ、仮数部のビット数制限で切り捨てられるためです。
Q: 減算は加算より情報落ちが起きやすいですか?
A: はい、特に近い値の減算は桁落ちを招きやすく、仮数部の精度が大幅に低下します。
A: はい、特に近い値の減算は桁落ちを招きやすく、仮数部の精度が大幅に低下します。
関連キーワード: 浮動小数点数、情報落ち、仮数部、指数差、数値計算、計算順序

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

