丸め誤差、打切り誤差、桁落ち、情報落ちとは
① 物語性を取り入れた説明
ある日、ユウコは学校の情報科の授業で「コンピュータで発生する誤差」について学ぶことになりました。先生がわかりやすい説明を試みます。
「みんな、今日はコンピュータで発生する誤差について話すよ。まず、コンピュータで少数・・・つまり小数点(.) を使って表す数のこと、を扱う方法について説明するね」と先生が言いました。
「コンピュータで少数を扱うためには、浮動小数点数という方法を使うんだ。浮動小数点数は、数値を符号、指数部、仮数部の3つの部分に分けて表現するんだよ」と先生は続けました。
「例えば、科学の実験で非常に大きな数や非常に小さな数を扱うとき、普通の整数の表現では足りないことがあるよね。浮動小数点数を使うと、これらの数値を効率よく表現できるんだ」と説明しました。
「具体的にはどういうことですか?」とユウコが尋ねました。
「いい質問だね、ユウコ。浮動小数点数は、符号部(正か負かを示す部分)、指数部(数値の桁を調整する部分)、仮数部(実際の数値部分)の3つに分かれているんだ。例えば、2.5という数値は、仮数部が2.5、指数部が0、符号がプラスになるんだよ。もう一つ例を挙げると、-0.00082という数値は、仮数部が8.2、指数部が-4、符号がマイナスになるんだ。」と先生は答えました。
「でも、ビット数が限られているため、全ての数値を正確に表現するのは難しいんだ。これが、アンダーフローやオーバーフローという現象を引き起こすんだ」と先生は続けました。
「アンダーフローとオーバーフローって何ですか?」とユウコがさらに質問しました。
「アンダーフローは、非常に小さな数値がゼロになってしまう現象だよ。例えば、0.00000001のような数値が、ビット数の限界を超えてしまうと、0として扱われることがあるんだ。一方、オーバーフローは、非常に大きな数値が無限大として扱われる現象だよ。例えば、10の100乗のような数値がビット数の限界を超えると、無限大として扱われることがあるんだ。」
「なるほど、少数を扱うのは難しいんですね。でも、どうして誤差が発生するんですか?」とユウコはさらに興味を持ちました。
「いい質問だね。誤差には丸め誤差、打切り誤差、桁落ち、情報落ちの4種類があるんだ。これらは全て、浮動小数点数を使った計算で生じる問題なんだ」と先生は説明しました。
丸め誤差
「例えば、丸め誤差は、コンピュータが小数点以下の数値を一定の桁数に丸めるときに生じる誤差。別の言い方をすると、表現できる数の範囲である有効桁以降の値を捨てるときに生じる誤差だよ。例えば、3.141592を表示するビット数が限られている場合、3.14や3.142のように切り上げや切り捨てをすることがある。この誤差が丸め誤差だ。」
打切り誤差
「打切り誤差は、計算中に無視される数値が原因で生じる誤差だ。たとえば、長い小数点以下の数値を途中で打ち切ることで、実際の値と少しずれてしまうことがある。例えば1÷3=0.3333333…のような無限に続く長い小数点以下の計算をコンピューターは途中で打ち切るので誤差が生じるんだ。」
桁落ち
「桁落ちは、値がほぼ等しい二つの数値の差を求めた時に起こる。大きな数からほぼ同じ大きさの数を引き算すると、有効桁数が減ってしまい、結果として精度が低下することがあるんだ。例えば、0.157×10^6(10の6乗)ー0.153×10^6=0.004 この場合の有効桁数は1桁になるよね。先ほどの浮動小数点数で表現すると0.400×10^4となるんだけどこの付加された00が元々0だったという保証はないから信用できない桁が増えたことになるんだ。」
情報落ち
「最後に情報落ちは、非常に小さな数が大きな数によって無視されてしまうことだ。例えば、1.0000000001と1を引き算すると、コンピュータではその違いが表現できずに無視されてしまうことがある。」
ユウコは深く理解しました。「なるほど、コンピュータで計算するのは単純じゃないんですね。」
丸め誤差、打切り誤差、桁落ち、情報落ちの定義
丸め誤差:コンピュータが小数点以下の数値を一定の桁数に丸めるときに生じる誤差。
打切り誤差:計算中に無視される数値が原因で生じる誤差。
桁落ち:値がほぼ等しい二つの数値の差を求めた時に、有効桁数が減ることによって発生する誤差。
情報落ち:非常に小さな数が大きな数によって無視されてしまうことで生じる誤差。
② 実際の事例
企業での誤差の使用例
多くの企業では、数値計算を行う際にこれらの誤差を考慮する必要があります。例えば、大手金融機関では、取引データを計算する際に丸め誤差が発生することがあります。これにより、最終的な取引額に微小な違いが生じることがあります。
また、製造業では、製品の寸法を計測する際に打切り誤差が発生することがあります。特に高精度の部品を製造する場合、この誤差が積み重なると、最終製品の品質に影響を与えることがあります。
さらに、気象予報などの科学分野では、数値シミュレーションを行う際に桁落ちや情報落ちが発生することがあります。これにより、予報の精度に影響を与えることがあり、対策が必要です。
自治体での誤差の使用例
自治体でも、住民サービスを提供するために数値計算を行う際にこれらの誤差が発生することがあります。例えば、税金の計算において丸め誤差が生じることがあります。この場合、誤差を最小限に抑えるための対策が重要です。
また、インフラ整備の計画を立てる際に、地理情報システム(GIS)を使用してデータを処理する場合、打切り誤差や桁落ちが発生することがあります。これにより、計画の精度に影響を与えることがあり、慎重なデータ処理が求められます。
さらに、医療分野では、患者のデータを処理する際に情報落ちが発生することがあります。例えば、非常に小さな変化が大きなデータによって見落とされることがあり、正確な診断や治療に影響を与える可能性があります。
③ クイズや小テスト
クイズ1 丸め誤差とは何ですか?
A. 大きな数と小さな数を引き算するときに生じる誤差
B. 数値を一定の桁数に切り上げたり切り捨てたりすることで生じる誤差
C. 小数点以下の桁を切り捨てることで生じる誤差
クイズ2 打切り誤差が発生するのはどのような場合ですか?
A. 非常に小さな数が大きな数によって消されてしまう場合
B. 小数点以下の桁を切り捨てる場合
C. 数値を一定の桁数に切り上げたり切り捨てたりする場合
クイズ3 桁落ちとは何ですか?
A. 値がほぼ等しい二つの数値の差を求めた時に、有効桁数が減ることによって発生する誤差
B. 数値を一定の桁数に切り上げたり切り捨てたりすること
C. 非常に小さな数が大きな数によって消されてしまうこと
回答
- B. 数値を一定の桁数に切り上げたり切り捨てたりすることで生じる誤差
- B. 小数点以下の桁を切り捨てる場合
- A. 値がほぼ等しい二つの数値の差を求めた時に、有効桁数が減ることによって発生する誤差