【超基礎】丸め誤差、打ち切り誤差についてカンタン解説!違いと覚え方も紹介

アイキャッチ_丸め誤差_打ち切り誤差コンピュータの仕組み
サバ缶
サバ缶

どうもこんにちは!
サバ缶(@tech_begin)です。

基本・応用情報で頻出する問題、『丸め誤差』と『打ち切り誤差』について解説していきます。

よく出る問題であるということは、それだけ重要な知識だということです!

焦らず、少しずつ理解していきましょう。

それぞれが密接に絡まった内容となっています。
上から順にゆっくり読み進めてください。

そもそもなぜ誤差が起きるのか

スマホやパソコンといったコンピュータは、全て2進数で処理をしています。

つまり、全てのデータは「数値」で処理・表現されているわけです。

その数値は、表現できる範囲に限度があります。

なぜなら、処理を担う機器が物理的に有限状態であるためです。

サバ缶
サバ缶

無限の数を処理することが可能であれば、超越的存在…
つまり現実に存在し得ないコンピュータとなってしまいます😢

有限な状態を体験してみよう

すぐにわかる例で解説しますね。

サバ缶
サバ缶

9を3で割ってください。

9 ÷ 3 = ?

答えは『3』ですよね。では次に、

サバ缶
サバ缶

4を3で割ってください。

4 ÷ 3 = ?

答えは『1.3333…』と割り切れない値になりました。これを『無限小数』と呼んだりします。
Googleの電卓でも試してみましょう。

丸め誤差_Google電卓の有効桁数

Googleは「1.33333333333」までしか表現していませんね。

本来は「1.33333333333333333333333333333333333」かもしれないのに、雑な計算をしていますね(失礼)。

丸め誤差

上の状態が『丸め誤差』です。

有効桁数以降の値を切り捨てることによって生じる誤差のことを「丸め誤差」と言います。

サバ缶
サバ缶

上のGoogle電卓の有効桁数は
『小数点以下11桁』ということになります。

ざっくり言うと「箱に収まらない分は諦めます」という感じです。

また、四捨五入で『小数点以下切り捨て』した値によって、本来の数との間に生じた誤差のことという認識でもOKです。

余談ですが、ビジネスでも「丸め」は起きています。

決算資料を見てみましょう。
トヨタ自動車株式会社の2022年3月期決算です。
(内容はわからなくても大丈夫です)

丸め誤差_トヨタの決算資料

赤色枠に『31,379,507』とありますね。そして青色枠に『百万円未満四捨五入』とありますね。

つまり、実際には『31,379,507,000,000円(くらいだよ)』ということを表しています。

『31,379,507,499,999円』かもしれないし『31,379,506,500,000円』かもしれません。

トヨタは100万単位で丸めているということになります。

打ち切り誤差

割り切れない計算を実行すると、無限に処理が続いてしまいます。

4 ÷ 3 = 1.33333333333333333333333333333333333…(永久に続く)

そんなことをしていると、コンピュータはもっと重要な処理にリソース(資源、メモリのこと)を割くことができません。

言い換えれば、顧客情報を取得するような大切な処理を実行しているのに、頭の片隅で「4÷3」の割り算を永遠と続けているイメージです。

本当に重要なことに頭使ってる?

さらに噛み砕いて言えば、以下のようなイメージです。

  • 業務の会議中で意見を求められて答えている最中に、購入した株の上下を気にしている(気にしても解決することはできない)
    • こっちの仕事に集中してよ!

  • お店に客多くて忙しいのに、1枚の皿をずっと洗い続けている(細菌を完璧に0にはできないのに)
    • さっさとこっちの仕事手伝ってよ!

…と思いますよね。

それが『打ち切り誤差』です。

無限に続いてしまう計算を、ある時点で処理を打ち切ることによって発生する誤差のことです。

【まとめ】丸め誤差と打ち切り誤差の違い

  • 有効桁数以降を切り捨てる
    • 丸め誤差
  • 無限に続く値の計算を打ち切る
    • 打ち切り誤差

計算をしているか、していないかという違いで覚えても良いと思います。

さて、次は『情報落ち』と『桁落ち』について解説していきます。

タイトルとURLをコピーしました