いきなりですが問題です.
0.111...を,簡単な数で表しましょう.
x = 0.111...とします.すると,10x = 1.111...です.
筆算で,10x - xを行います.上の段に「10x = 1.111...」を,下の段に「x = 0.111...」と書いて,等号を揃えます.左辺は10x - x = 9xです.右辺は,小数点以下がすべて打ち消されまして,1 - 0 = 1です.
9x = 1の両辺を9で割って,x = 1/9が答えです.
具体的な数は異なっていましたが,循環小数を上のようなやり方で,分数に変換する問題は,中学2年か3年の数学の教科書に載っていたと記憶します.
「x = 0.111... ならば 10x = 1.111...」や「小数点以下がすべて打ち消される」は,もちろん,厳密さを欠いているところで,きちんとやるには極限などの道具立てが必要です.
極限という言葉は用いないにしても,円の面積の公式を導くにあたり,円を細かく切って並べ替えると,平行四辺形または長方形になるというのは,小学6年で習った(今も習っている),極限をとる操作です.
それはさておき,問題です.
2進数で表された0.111...を,簡単な数で表しましょう.
上と同じやり方で,0.111... = 1と分かります.
一般化を試みてみます.
N進数で表された0.111...を,簡単な数で表しましょう.
N進数で用いられるいわゆる数字を,0, 1, 2, ..., Mとし,Mがその中で最大とします.すなわちM + 1= Nであり,N進記法ではMに1を加えた数は10となります.
上と同じやり方で,0.111...は,1/Mとなります.この結果は,N=2およびN=10の場合を含んでいます.言葉にすると,N進数で用いられる,0の次に小さい1桁の数を,N進数で用いられる,最も大きな1桁の数で割ったもの,となります.
関連:
- 0.999999... = 1 が理解できない中学生 - はてな匿名ダイアリー
- 「0.999999... = 1」はつまるところ実数の公理なのだがそれを説明するのにエントリー何回分かかるだろうか? - しいたげられたしいたけ*1
- 「0.999999... = 1」にまつわる未整理材料いろいろ(その1) - しいたげられたしいたけ
- wikipedia:0.999...
- wikipedia:循環小数
それと,wikipedia:カントールの対角線論法には,「自然数の集合と[0, 1]区間の濃度の違い」という項目があり,「そしてbを小数点展開が0.b1 b2 …となる実数とする。このとき、bはa1, a2, …のいずれとも異なる」と書かれていて,びっくりしました.二進数展開に基づく場合,a1, a2, …の構成次第で,b = 0.111... = 1となり,数列aの中に1.000... = 1があると,都合が悪いことになります.
不審に思いながら,読み進めると,脚注に「aiの二進数展開が2つある事もある(例えば0.1 = 0.01111…)為、本当はこの部分の証明はもう少し複雑になる。」と記されていました.区間を[0,1)にする(1を含まない)としても,都合が悪い状況が作れることを示唆しています.
どこかで読んだ本では,たしか「三進数展開」を使えば回避できたはずです.a1, a2, …を3進数で表したとき,aiの小数第i位が1なら0に,それ以外(0または2)なら1を,bの小数第i位とするわけです.これにより,bは(3進数で)0.X222... = 0.X'000... となるのを回避できます.ところで,3進数の0.111...は,2分の1なのですね.
*1:「実数の公理である」ではなく「実数の公理をもとに証明できる」であれば,違和感も減るのですが.これについては,http://anond.hatelabo.jp/20161026204445が詳しいですね.