SATOXのシテオク日記

~ふもっふ、ふもふも~

9÷0=?

先日のネタに引き続き、ねとらぼさんで取り上げられたTwitterで話題になっていたという記事から。
という2009年に話題になったネタが再燃しているようです。
なんでも、小学校のテスト問題で「9÷0=?」という問題に「0」と答え、先生からマルをもらっているというテスト用紙。まぁマルの横に「?」と書いてあるので、先生もその「問題」に気づいているんでしょう。

突然ですが問題です。「9÷0=?」 これ、答えはいくつになるか分かりますか?

9÷0の答えは「なし」。
0でもなければ1でもありません。数字をゼロで割るという概念はないんです。
あえて日本語で言えば、「ゼロで割る=割らない」と考えれば分かりやすいかもしれません。「9を割らなかったら答えは?」と言われているようなもの。

コンピュータの世界では
コンピュータの世界でゼロで割る計算をするとどうなるか知ってますか?
答えは、CPUは(いろいろな言い方をしますが)「divide by zero(ゼロ除算)」というエラーを出し、通常例外処理として取り扱われます。対処すれば回避できますが、「アプリが落ちる」というアレです。
限りなくゼロに近い数で割ってもダメです。
lim_{n \to 0}(\frac{1}{n})=\infty
限りなくゼロに近い数で割ると、限りなく大きな数になってしまうことを考えれば、CPUが表現できない困った値になる事が想像できるかと思います。
128ビットで表せる整数の最大は「340282366920938463463374607431768211456」という途方もない数ですが、それでも有限。こんな時、あるシステム系では「表現できない数」=「NaN (Not a Number)」という特別な変数の表現をしたりします。