芽萌里先生

これまでにCPUの命令の流れや性能について学んできましたね!

広伝 亜美

CPUって思ってたより中が複雑でおもしろかったです!

目田 育人

同じ命令でも速さが違ったり何個もコアがあると同時にできたりすごいですよね

芽萌里先生

CPUはとても速く正確に命令を処理しますが…実は「計算に誤差」が生まれることがあるんです

広伝 亜美

えっ!?誤差って計算が間違ってるってことですか?

芽萌里先生

間違いというより「わずかなズレ」が起こることがあるんです

目田 育人

ズレ?コンピュータって正確に計算してるんじゃないんですか?

芽萌里先生

はい ある条件になると完全に正確な数ではなく近い数で代用していることがあるんです

芽萌里先生

たとえば 次のうちコンピュータが正確に表現できない数はどれだと思いますか?

芽萌里先生

この中では「0.1」が正確に表現できません

広伝 亜美

あっ!基数変換の2進数の計算のところで0.1は循環小数になるって学習してました。

芽萌里先生

思い出しましたか?「0.1」はコンピュータの中では0.000110011…となって2進数でピッタリ表現できないんです

目田 育人

じゃあ0.1を10回たしても「1」にならないってことですか?

芽萌里先生

そのとおり!たとえばPythonなどで試すと「0.999999…」みたいにちょっとだけズレることがあります

広伝 亜美

なるほど…ちょっとのズレでも何回も使ったらすごくズレそうですね

芽萌里先生

まさにその通り!この「わずかなズレ」が場合によってはとても大きな問題になることがあるんです

目田 育人

たとえばロケットの進む方向がちょっとズレるとか…?

芽萌里先生

おー いい想像力ですね!その話次の「演算誤差」のスライドで詳しく見ていきましょう!

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる