Upgrade to Pro — share decks privately, control downloads, hide ads and more …

誤差を知ろう

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for kosuke hino kosuke hino
July 30, 2024
71

 誤差を知ろう

Avatar for kosuke hino

kosuke hino

July 30, 2024
Tweet

Transcript

  1. 整数と2進数 • 10進数を2進数で表すときは、2!の⾜し合わせによって表現します • Ex) 123 "# = 1111011(%) =

    1 & 2' + 1 & 2( + 1 & 2) + 1 & 2* + 0 & 2% + 1 & 2" + 1 & 2# = 64 + 32 + 26 + 8 + 0 + 2 + 1 • 全ての整数は2進数で表現が可能です • つまり整数の2進数の変換では、誤差は出ないという事です 5
  2. ⼩数と2進数 • なんとなく察しがつくかと思いますが、⼩数は2進数で表現出来た り、出来なかったりします。 • Ex)0.75 "# = 2+" +

    2+% = 0.11(%) • 0.1 "# = 2+) + 2+(+. . . = 0.000110011001100110011 …(%) • コンピューターは2進数の上限の桁数が決まっています • なので無限に続いてしまった場合は、途中で切ることになります。 • その結果、10進数から2進数に変換すると、元の10進数の値とは別 の値で2進数として表現する事なって誤差が⽣じる • 0.1を32桁にして表した時内部的にどうなるかの図 7
  3. ⼊⼒データによる誤差とは? • 10進数の時点で割り切れない " * や" ' を計算の中で使う際に出る誤差 • Ex)

    以下のような計算になる時 • 理系的な対処法としては、そのまま計算してはいけません。分⼦は 分⼦で、分⺟は分⺟で計算をして、最後に割り算を⾏って誤差を最 ⼩にする • つまり計算の順番を⼯夫して、割り算を⾏うのは最終的な回答を出 すときだけで、それまでは分数で計算をしていくという事 9