僕は典型的な文系人間なので、そんな僕にも理解できるように、なるべくわかりやすくお願いします。
quintiaさんの解説を見て、本質的に分かった気がします。
私の理解を次のような物語風の説明にしてみました。
お時間が合ったら、読んでみて下さい。
●先生が十進君と三進君に言いました。
「1個のりんごを3人に平等に分けなさい。」
十進君は、いつでも10個に分けてから考えます。
まず、10個に切り刻みました。それを3人に3切れずつ渡すと、1切れ余りました。
次に、その余った1切れをさらに10個に分け、それを3人に3切れずつ渡すと、1切れ余りました。
次に、…。
いつまでも終わりません。
三進君は、いつでも3個に分けてから考えます。
1個のりんごを3個に切り分け、3人に1切れずつ渡しました。
●先生が十進君と三進君に言いました。
「1個のりんごを2人に平等に分けなさい」
三進君は、いつでも3個に分けてから考えます。
まず、3個に切り刻みました。それを2人に1切れずつ渡すと、1切れ余りました。
次に、その余った1切れをさらに3個に分け、それを2人に1切れずつ渡すと、1切れ余りました。
次に、…。
いつまでも終わりません。
十進君は、いつでも10個に分けてから考えます。
あっさり1個のりんごを10個に切り分け、2人に5切れずつ渡しました。
●先生が十進君(6年生)と十進ちゃん(1年生)に言いました。
「1個のりんごを1人に平等に分けなさい。」
十進君は、いつでも10個に分けてから考えます。
でも、何年も勉強してきました。今回は分ける必要のないことくらい経験上知っています。
1個のりんごをそのまま、1人に渡しました。
十進ちゃんは、いつでも10個に分けてから考えます。
まず、10個に切り刻みました。
「せっかく切ったのに、すぐに全部渡すのは嫌!後で渡すなら一緒ですよね?」
先生は言いました。「絶対に自分で食べたりしちゃダメですよ。守れるならいいです。」
先生の許可を得た十進ちゃんは、1切れ手元に残して、1人に9切れ渡しました。1切れ余りました。
次に、その余った1切れをさらに10個に分け、それを1人に9切れ渡すと、1切れ余りました。
次に、…。
いつまでも終わりません。
でも、十進ちゃんは、決して自分で食べたりしてませんから、間違ったことをしている訳ではありません。
●考察
通常私たちは、学校教育のせい(か)で10個に分ける癖(10進法で考える癖)が着いているんですね。
でも、よく考えると2個に分けて考えてもいいし、5個でもいい…。
さらに、時、分、秒は60進法でやってるので、10進法が当たり前でもない。
コンピュータの世界では2進法や16進法が使われている。
どのやり方が正しいとか間違いとかいうことではなく、表現が違うということ。
しかし、ここで疑問がわきます。エクセルが計算間違いする(http://www.asahi-net.or.jp/~FV6N-TNSK/gates/excel.txt)と言うのです。
表現が違うだけで、正しいとするならば、10進法を2進法で扱っても計算間違いはしないハズ。なのに、なぜエクセルは間違うのか?
私はこれを読んでみて、2進法で表せない数があるというよりも、無限に続くということをコンピュータの計算に反映させるのが難しいからなんだと理解しました。
以上、素人考えで不正確な点や誤りもあると思いますが、私はなんとなく感覚的に分かったつもりになりました。
突っ込みどころ満載かも知れませんが、あえて投稿しました。
狭いPHSの画面で読んだので、十進君と十進ちゃんが最初府に落ちなかったのですが、読み返してみて「面白いな」と思いました。
十進君と三進君は私が示したかったことを、とても上手に表現していると思います。
3進数で考えましょうよ!
1→1
2→2
3→10
4→11
:
:
1÷3 → 0.1
2÷3 → 0.2
1÷9 → 0.01
:
:
てな感じです。
1/3 × 3 という10進数のかけ算は 3進数ではどう書きますか?
0.1 × 10 ですね?
ほらなんの不思議もなく 0.1 × 10 = 1 になったじゃないですか!
じゃ、10進数の 1/2 × 2 = 1 を 3進数で書くとどうなるでしょう?
1/2 は 3進数で書こうとすると 0.11111111…… という循環小数になります。
3進数だと 0.11111111……× 2 = 0.22222222……になりますね?
さて、この「0.22222222…… という数」はなんでしょう?
さっきはさらっと書いてしまったので、もう一度確認しますよ。
1/2 × 2 = 1 ですね? これを認めない、間違いだ、なんて言いませんよね?
ならば 3進数表記下での循環小数 0.2222222…… は 1 以外の何か別の数だというのですか?
同じように、10進数の 0.9999999…… も、1 なのですよ。