戻る

ダイヤル数が現れる法則を導く
1;問題提起
まず、次の計算を見てほしい。
   142857×1=142857
   142857×2=285714
   142857×3=428571
   142857×4=571428
   142857×5=714285
   142857×6=857142
……無駄に行数を使ったが、お分かりだろうか。
142857という数に、1〜6までの数をかけると、その積は常に142857の並べ替えになるのだ。
さらに、よく見ると、1の後は必ず4、4の後は必ず2、のように数字の出てくる順序は変わっていないことがわかる。
このような並べ替えのことを、循環と呼ぶ。
そして、この142857のように、倍々すると自身の循環が現れる数のことを、「ダイヤル数」と呼ぶ。
私は最近まで、142857以外のダイヤル数を知らなかったのだが、
先日、暇なときに「ダイヤル数探してみるか」と思って電卓をいじっていたら、いともあっさり発見できた。
それがこちらである。
   0588235294117647×1=0588235294117647
   0588235294117647×2=1176470588235294
   0588235294117647×3=1764705882352941
と、この調子でなんと「×16」まで続けられる。
最初に0が来ているのが気持ち悪いが、ダイヤル数はダイヤル数である。
……問題は、私がどうやって0588235294117647なんてけったいな数を発見したか、である。
実は、最初に挙げたダイヤル数142857の出所は、
   1÷7=0.142857 142857 142857……
なのである(当然、1÷7=1/7も、最初の「0.」を除けばダイヤル数である)。
このように、同じ数字が繰り返し現れる小数を循環小数と呼び、その繰り返される“まとまり”を循環節と呼ぶ。
そこで私は、他の循環小数を片っ端から試した結果、
   1÷17=0.05882352941176470588235294117647……
がダイヤル数であることを突き止めたのだ。
しかし、循環小数ならばすべてダイヤル数になるかと言うと、そうとは限らない。
例えば、
   1÷3=0.3333333333333……
   1÷11=0.09090909090909……
は、明らかにダイヤル数ではないからだ。
すると当然、次の疑問が生まれる。
 「Mがどのような数のとき、1÷Mはダイヤル数を生むか?」
これを突き止めることが、今回の目的である。
ぶっちゃけ、ネットで調べれば一発でわかると思うが、敢えてしない。
むしろ、このレポートが「ネット」になろうという所存である。
(もっとも、このサイトのほとんどのレポートが、「ネットで調べれば一発でわかること」であると思われるが)
なお、Mは自然数(1, 2, 3, ...)であるとする。今回のレポートで登場する他の文字も、特に断りが無い限り自然数とする。

2;定義
ここでいくつか、用語の定義をしておこう。
まず、1÷Mがダイヤル数を生む場合、そのようなMのことを「母ダイヤル数(ぼだいやるすう)」と呼ぶことにする。
この用語を使うと、今回の目的は「Mが母ダイヤル数となるための条件を探す」と言える。

次に、1÷Mがダイヤル数を生む場合、そのダイヤル数をD(M)と書くことにする。
例えば、
   D(7)=142857
   D(17)=0588235294117647
といった具合である。
(このような書き方は、数学で非常によく登場する。早めに慣れておくと、後々数学の勉強が楽になる)

また、このレポートでは「1桁の数は、ダイヤル数とは呼ばない」と定める。

言うまでもないが、以上の用語は私が勝手に考えたものだ。世間一般ではたぶん通用しないので、注意。

3;実験および予想
数学の研究なので、本来ならば実験は存在しないはずである。
が、どこからどう手を付けたら良いのか、皆目見当が付かないので、まずは電卓で他のダイヤル数を探してみよう。
そして、見つけたダイヤル数から、ダイヤル数や母ダイヤル数に関する性質を予想し、それを足がかりとする。
(ちなみに、数学では「仮説」と言わず「予想」と言うことが多い)

まず、「問題提起」でやったように、1÷MをM=2から順に片っ端から計算し、ダイヤル数が出てくるかどうか調べていく。
すると、他に発見したのは、
   D(19)=052631578947368421
   D(23)=0434782608695652173913
   D(29)=0344827586206896551724137931
である。これ以上は、電卓の桁数の関係で、調べることができなかった。
ここまでで5つのダイヤル数を発見したが、これらには次の法則があった。
   M=7 → ×6まで循環
   M=17 → ×16まで循環
   M=19 → ×18まで循環
   M=23 → ×22まで循環
   M=29 → ×28まで循環
つまり、すべて(M−1)倍まで循環するのである。そして、M倍で999……999(9がM−1個)となる。
ここから、「D(M)は(M−1)倍まで循環する」と予想される。
…というか、「1÷Mで生まれるダイヤル数は、どうあがいても、(M−1)倍までしか循環しない」ことがすぐにわかる。
というのも、「ダイヤル数を倍々する」ということは、「1÷M、2÷M、3÷M、……を計算する」ことと同じだからだ。
例えば、D(7)=142857の2倍は285714だが、2÷7=0.285714285714285714……となるのだ。
そしてD(7)の7倍は999999だが、これは7÷7=1=0.9999999999……であることに由来する。
(何故1=0.999999……となるのかは……長くなるので省略。気になる人は、「1=0.999」などでググッてくだされば、これでもかと言わんばかりに解答が得られる)
さらに、これら5つの母ダイヤル数はすべて、素数である。
ここから、「母ダイヤル数は、素数である」と予想される。
素数とは、ざっくり言うと「1以外の整数を使って、A×Bの形に表せない自然数」のことである。
例えば、14は2×7と表せるので素数ではないが、7はどう頑張っても1×7としか表せないので素数である。
また、素数でない整数を合成数と言い、すべての合成数は2つ以上の素数の積で表せる(ただし、1は素数でも合成数でもない)。

M=13のときには、面白い現象が起こった。
   1÷13=0.07692307692307692307692307692307……
であるが、この076923を倍々していくと、
   076923×1=076923 ○
   076923×2=153846 □
   076923×3=230769 ○
   076923×4=307692 ○
   076923×5=384615 □
   076923×6=461538 □
   076923×7=538461 □
   076923×8=615384 □
   076923×9=692307 ○
   076923×10=769230 ○
   076923×11=846153 □
   076923×12=923076 ○
のように、076923と153846の循環が現れるのだ(○が076923、□が153846の循環である)。
この076923のように、2個の循環を生む数を「2次ダイヤル数」と呼ぶことにしよう。
さらに、3個生めば「3次ダイヤル数」、4個生めば「4次ダイヤル数」、n個生めば「n次ダイヤル数」と呼ぶことにする。
また、普通のダイヤル数は「1次ダイヤル数」であると言える。
ここで、ダイヤル数とダイヤル数でない数、そしてそれらを生むMを見比べると、ある法則が浮かび上がる。
M=7, 17, 19, 23, 29で生み出されるダイヤル数の桁数はそれぞれ、6, 16, 18, 22, 28桁なのである。
つまり、ダイヤル数の桁数は、必ずM−1桁になっているのだ。
一方で、ダイヤル数とならない場合、1÷Mで生み出される数はM−1桁ではない。
以上から、「1÷MでM−1桁の循環節ができれば、その循環節はダイヤル数となる」と予想される。

4;予想の整理
さて、以上でダイヤル数や母ダイヤル数に関する3つの予想が得られた。
1つ目「D(M)は(M-1)倍まで循環する」
2つ目「母ダイヤル数は、素数である」
3つ目「1÷MでM−1桁の循環節ができれば、その循環節はダイヤル数となる」
である。
ではこのうち、重要なものはどれか?
それは、3つ目の予想である。
何故なら、もしこの予想が正しければ、
「Mが母ダイヤル数となるための条件は、1÷MがM−1桁の循環節を作ることである」
と言えるからだ。そしてこれが、今回のレポートの結論の1歩手前になる。
何故「手前」かといえば、「1÷MがM−1桁の循環節を作るのは、どのようなときか?」という疑問が新たに生まれるからである。
とはいえ、3つ目の予想さえ証明できれば、目的の半分は達せられたようなものである。
というわけで、ここではまず3つ目の予想のみ証明する。
(なお、今回の目的「Mが母ダイヤル数になる条件を探す」を考えると、1つ目、2つ目の予想は考察する必要すらない。が、それではあまりに味気ないので、後で証明することにする)
なお、「2つ目の予想も、結論になるのでは?」と思われるかもしれないが、違う。2つ目の予想は、「母ダイヤル数は、素数だ」と言っているのであり、「素数は、母ダイヤル数だ」と言っているわけではないからだ。私の母は女だが、女がみな私の母と言うわけではないのと同じである。実際、素数である3は母ダイヤル数ではない。

5;証明の準備
証明の前に、いくつか準備を行う。

まず、そもそも「何故、循環小数は循環するのか」を考える。
簡単な例として、1÷3の筆算を書こう。
   
あまりに当然の話だが、ずっと同じ計算が続く。
そして、同じ計算が続くから、循環小数は循環するのである。
では何故、同じ計算が続くのか。
割り算の筆算は、まず一番上に商を立て、一番下に「割る数×商」を書き、ひとつ上に書かれた数から引き算をして行う。
上の筆算の丸で囲んだ数は、その引き算の結果(差)であり、その時点での「余り」である。
そして、前に出たのと同じ余りが出たら、そこから先の計算は、前に出た余り以降と同じ計算になる。
だから、同じ計算が続くのだ。
もうひとつ、1÷7の筆算を見てみよう。
   
こちらの筆算の方が、先ほどの説明の意味がわかりやすいだろうか。
最初の引き算では、余りが3である。そして、7回目の引き算で、再び余りが3になっている。
そして、以降の計算は、最初から6回目までの繰り返しになるのである。

次に、「割り算の余り」の性質を述べる。
割り算の余りには色々な性質があるが、ここで使うのは次の1つだけである。
  「ある数をMで割った余りは、必ず0以上M−1以下である」
例えば、12÷7の余りは5である。間違っても、何かを7で割って8や9と言った余りが出てくることはない。

6;3つ目の予想の証明
ではいよいよ予想「1÷MでM−1桁の循環節ができれば、その循環節はダイヤル数になる」の証明に入る。

[1]
再び、上に書いた1÷7の筆算を見ていただきたい。
丸で囲んだ余りを上から順番に見ていくと、6回目までに1〜6が1回ずつ出てきていることがわかる。
何かを7で割った余りは、必ず0〜6までのどれかになるので、0を除いたすべての余りが出てきていることになる。
(余りが0になると、そこで割り切れるため、循環小数にならない)

[2]
上の方で、「1÷Mで生まれるダイヤル数を倍々することは、1÷M、2÷M、…を計算するのと同じ」と書いた。
ではここで、2÷7の筆算を見ていただきたい。
   
この筆算は、上で見た1÷7の筆算の2番目の丸以降の筆算と同じである。
その理由を文章で説明するのは非常に難しいので、筆算をじっくり見て実感していただくのが一番だと思われるが、頑張って説明しよう。
割り算の筆算では、引いた結果の後ろに0をつける。
一方、筆算の最初でも、割られる数(この場合2)が割る数(この場合7)より小さい場合は、割られる数の後ろに0をつける。
つまり、最初でも途中でも、まったく同じ操作が行われるのである。
だから、どこに2が出てこようとも、どこかに2が出てくれば、以降の計算はまったく同じになるのである。
そしてこれは、2÷7だけでなく、3÷7、4÷7、5÷7、6÷7のすべてに通じる。
つまり、3÷7では1÷7の中で余りが3になった箇所以降、4÷7では1÷7の中で余りが4になった箇所以降の計算が繰り返される。

[3]
[1]より、1÷7には1〜6までのすべての余りが登場している。
そして[2]より、2÷7から6÷7までの計算は、1÷7の中の余りが2〜6になった箇所以降と同じ計算を繰り返す。
同じ計算を繰り返すということは、同じ商が繰り返されるということである。
だから、1÷7=0.142857142857142857……はダイヤル数を生むのだ。

[4]
以上のことは、7に限らない。
ある数をMで割った余りは、0,1,2,3,……,M−2,M−1のどれかである。
そして、1÷MでM−1桁の循環節ができた場合、その筆算には1〜M−1のすべての余りが登場する。
すると、2÷M,3÷M,……を計算すれば、1÷Mの中の余りが2の箇所以降、3の箇所以降、……の計算を繰り返すことになる。
よって、1÷MでM−1桁の循環節ができれば、その循環節はダイヤル数になるのだ。

[5]
余談になるが、逆に「1÷MでM−1桁の循環節ができなければ、その循環節はダイヤル数ではない」ことも証明できる。
M−1桁にならなければ、「登場していない余り」が存在することになる。
すると、2÷M,3÷M,……を計算していくと、どこかで1÷Mのどこにも登場していない計算をすることになる。
よって、1÷MでM−1桁の循環節が出来なければ、その循環節はダイヤル数にならないのだ。
Q.E.D.

7;残り2つの予想の証明
以上で、Mが母ダイヤル数となるための条件は、「1÷MがM−1桁の循環節を作ること」であるとわかった。
証明が成された予想なので、これは「定理」となる。「M−1桁定理」とでも呼ぶことにしよう。
さて、実はこの定理を使うと、残り3つの予想が証明できてしまうのだ。
1÷MがM−1桁の循環節を作る条件を探す前に、まずは予想を全部証明してしまおう。

7.1;1つ目の予想の証明
1つ目の予想は、「D(M)は(M-1)倍まで循環する」である。
これはもう、「M−1桁定理」の証明の中でほとんど証明してしまっているようなものだ。
先ほど書いたとおり、1÷Mの筆算の中には、1〜M−1のすべての余りが登場する。
そしてD(M)を1倍、2倍、3倍、……としていくことは、1÷M,2÷M,3÷M,……を計算していくことに等しい。
すると、例えば2÷Mでは、「1÷Mの筆算の中の、最初に余りが2になる箇所」以降の計算を行うことになる。
つまり、「1÷Mの筆算の中の、最初に余りが2になる箇所」以降と全く同じ商が立つので、D(M)の循環となる。
1〜M−1のすべての余りが1回ずつ登場するので、1÷M〜(M-1)÷Mまではすべて異なる小数になるが、すべてD(M)の循環となる。
Q.E.D.
……文章で書くといささかわかりにくいが、ご了承願いたい。

7.2;2つ目の予想の証明
2つ目は「母ダイヤル数は、素数である」だ。
この予想を証明するために、この予想の対偶を証明しよう。
「PならばQ」という文があるときに、「QでなければPでない」という文を、もとの文の「対偶」と呼ぶ。
そして、もとの文が正しければ対偶も必ず正しく、もとの文が間違っていれば対偶も必ず間違っていることが知られている。
例えば、「雨ならばいつか止む」は正しいが、この対偶「止まない雨はない(止まないならば雨ではない)」もまた正しい。

[1]
「母ダイヤル数は、素数である」の対偶は、「素数でなければ、母ダイヤル数ではない」である。
いま考えている数は、自然数のみである。自然数において「素数でない数」とは、1と合成数しかない。

[2]
まず、1は確かに母ダイヤル数ではない。1÷1=1だが、1はダイヤル数ではないからだ。

[3]
次に、合成数の場合を考える。ここでは、「合成数は、母ダイヤル数ではない」を示せば良い。
「母ダイヤル数ではない」を示すために、合成数をAとして、「1÷AはA−1桁の循環節を作らない」ことを示す。
(M−1桁定理の証明の中で、1÷AがA−1桁の循環節を作らなければ、Aは母ダイヤル数ではないことを示している)
いま、Aが2つの異なる素数p、qを用いて、
   A=p×q
と表せたとする。すると、
   1÷A = 1/A = 1/p×1/q
となる。
さてここで、1/pと1/qの循環節の桁数(または小数点以下の桁数)を考えると、これはそれぞれ、最大でもp-1桁、q-1桁である。
何故なら、もしp桁まで行くと、今までのどこかに出てきた余りと同じ余りが現れるので、そこから循環するからだ。
(循環しない場合は、どこかで余りが0となり、p-1桁以下で割り切れる。何故なら、pで割った余りは、0〜p−1のp個しかないからだ)
さらに、p-1桁の小数とq-1桁の小数を掛け算すると、その結果は最大でも (p-1)+(q-1) 桁の小数になる。
(どちらか、あるいは両方が循環小数だとしても、その循環節は最大でも (p-1)+(q-1) 桁となる)
そして、(p-1)+(q-1)=p+q-2 は、明らかに A−1=p×q−1 より小さい。
よって、A=p×qと表せるとき、1÷AはA−1桁より小さい循環節しか作らないので、Aは母ダイヤル数ではあり得ない。

いま、A=p×qと表せる場合のみ証明したが、一般に合成数は、
   A=p1^e1×p2^e2×p3^e3×……
と表せる(p1, p2, p3, ... が素数であり、それをそれぞれe1乗、e2乗、e3乗、…し、掛け合わせる)。
この場合でも、1÷Aの小数点以下の桁数(または循環節の桁数)は、最大でも、
   (p1-1)e1+(p2-1)e2+(p3-1)e3+…
となる。これは、A−1より明らかに小さいので、1÷AはA−1桁の循環節を作らない。
よって、合成数は母ダイヤル数とはなり得ない。

[4]
以上から、予想の対偶「素数でなければ、母ダイヤル数ではない」ことが示せたので、
もとの予想「母ダイヤル数は、素数である」は正しい。
Q.E.D.

8;M−1桁の循環節を作る条件
ではいよいよ、本命とも言うべき部分に入ろう。
1÷Mは、どのようなときにM−1桁の循環節を作るのだろうか。
1歩1歩順番に考えていこう。

[1]
先ほど、「前に出たのと同じ余りが出ると、以降は同じ計算が繰り返される」といったことを書いた。
つまり、「前に出たのと同じ余りが出れば、以降循環」し、「前に出たところから、今回出たところまでが循環節」になる。
ということは、1÷MがM−1桁の循環節を作るためには、次の2つの条件を満たせば良いことになる。
   条件1「M−1回目の引き算で、引いた結果が1になる」
   条件2「M−1回目までの引き算の中で、引いた結果が同じになる箇所が無い」
何故なら、引いた結果(余り)が1になれば、以降の計算は最初の引き算(10−何か)から今回の引き算までの繰り返しになるからだ。
M−1回目で1が出れば、以降は1回目からM−1回目までの繰り返しになる。
また、M−1回目までの中で、同じ余りが出てしまうと、そこから循環(M−1桁より小さい循環)となってしまう。
よって、M−1回目までは、1を含め、同じ余りが出てはならない。
実際、1÷7の筆算を見てみると、6回目の引き算が 50-49=1となっている。
一方、1÷13では、12回目で40-39=1となるが、6回目でも40-39=1となるので、ダイヤル数とならない。

[2]
では、上の2つの条件を満たすためには、Mはどうなっていれば良いのか?
それを知るために、割り算の筆算を、筆算を使わずに書いてみよう。
例えば、1÷7で考えてみる。この筆算を書くときは、まず1の後ろに0をつける。
これは計算で言えば、1を10倍することに等しい。
そして「10÷7」を考えて、「1余り3」と計算する。
次に、その「余り3」の後ろに0を付け、「30」とし、「30÷7」を考えて、「4余り2」と計算する。
これを繰り返していくのが、割り算の筆算である。
このことを式で書くと、次のようになる。
   
1行目が「10÷7」の計算、2行目が「30÷7」の計算、3行目が「20÷7」の計算、……である。
各行の「7×」の後ろにある数字が、割り算の筆算で一番上に来る商である。
1行目から順番に、1,4,2,8,5,7となっているのがわかるだろう。
各行の最後の数字が、割り算の余りである。筆算の「引いた結果」と一致しているはずだ。
同じようなものを、Mに関して書くと、次のようになる。
   
なにやらゴテゴテしたものになってしまったが、言っていることは1÷7の計算と同じである。
1番目の商がa1、1番目の余りがr1
2番目の商がa2、2番目の余りがr2、などとなっている。
さて、この1÷Mの式の中で、「M−1回目の引き算の、引いた結果」とは、rM-1のことだ。
つまり、条件1を数式で書けば、「rM-1=1」となる。
この式を使って、Mの条件を導こう。
1÷Mの式の、最後の数式
   10rM-2 = MaM-1 + rM-1
に、rM-1=1を代入して、式変形する。
   
これを、最後から2番目の数式に代入して、変形する。
   
今度はこれを、(書いてないが)最後から3番目の数式に代入する。
そうして得られた結果を、最後から4番目の数式に代入する。
そうして得られた結果を……という操作を延々と続けていくと、最終的にこんなものが現れる。
   
長大な式が現れるが、右辺の「+1」以外はすべて、Mの倍数である。
Mの倍数をいくら足してもMの倍数なので、この部分をまとめてMAと書くことが出来る。よってこの式は、
   10^(M-1)=MA+1
と変形できる。右辺の「+1」を左辺に持って来ると、
   10^(M-1)-1=MA
となる。
この式の右辺は「Mの倍数」を意味している。
また、左辺の「10M-1」は「1000……0(1の後ろに0がM−1個)」なので、「10M-1−1」とは「999……9(9がM−1個)」である。
この式は、いったい何を意味しているのか?
我々はいま、「rM-1=1」から、上の式を得た。
同じ式変形を逆に辿っていくことで、次のように言うことができる。
   「10M-1−1がMの倍数ならば、M−1回目の引き算で1になる」
これが、MA=10^(M-1)-1の意味だ。
……とりあえず、これはこのまま置いといて、条件2へ移ろう。

[3]
条件2も数式で書く。こちらは、「ri≠rj (1≦i<j≦M-1)」となる。
なんだか妙な式が出てきたが、これは数学でよく用いられる書き方である。
何が言いたいかと言えば、「M−1回目までの引き算の中で、引いた結果が同じになる箇所が無い」と言いたいのだが、数式で書くと、
「r1≠r2」「r1≠r3」「r1≠r4」……「r1≠rM-2」「r1≠rM-1
「r1≠r2「r2≠r3」「r2≠r4」……「r2≠rM-2」「r2≠rM-1
……
と言いたいのだ。要するに、「rの□が異なるときは、同じ値にならない」と言うことを数式で書くと、上のようになるのである。
書いておいてなんだが、いったん上の条件式「ri≠rj (1≦i<j≦M-1)」をちょっと忘れて、「ri=rj (1≦i<j≦M-1)」を考える。
この新しい数式を使って、条件1でやったのと同じような操作をする。
すると、今度は次のような数式を得る。
   10^(j-i)ri=MA+rj
いま、ri=rjなので、どちらもRと書こう。すると、こう変形できる。
   (10^(j-i)-1)R=MA
さてここで、母ダイヤル数Mは素数である。そして、Rは0ではない。(Rが0だとすると、そもそも循環小数にならない)
上式において、この2つの条件が揃うと、A÷Rは整数であると断言できる(何故なのか……を説明すると長くなるので省略。気になる人は、「素因数分解」などでググっていただきたい)。
すると、上式の両辺をRで割り、さらにA÷RをNとおくと、次のようになる。
   10^(j-i)-1=MN
どこかで見た式に似ていないだろうか? そう、これは条件1を変形して現れた式にそっくりなのである。
この式の言わんとするところも、条件1の式と似ていて、
   「10j-i−1がMの倍数ならば、ri=rj
である。と同時に、
   「ri=rjならば、10j-i−1がMの倍数」
とも言っている。というか、むしろこっちがメインである。
何故なら、そもそも我々は、ri=rjから出発して、式変形して来たからだ。
ではここで、「対偶」を使おう。メインの主張の方の対偶は、こうなる。
   「10j-i−1がMの倍数でなければ、ri≠rj

[4]
さて、我々はここまで、いったい何をやってきたのか。
Mが母ダイヤル数となるための条件を探ったところ、「1÷MがM−1桁の循環節を作れば、Mが母ダイヤル数になる」と突き止めた。
次に、1÷MがM−1桁の循環節を作るための条件を探ったところ、
   条件1「M−1回目の引き算で、引いた結果が1になる」
   条件2「M−1回目までの引き算の中で、引いた結果が同じになる箇所が無い」
の2つの条件を得た。この2つを数式で表すと、
   条件1「rM-1=1」
   条件2「ri≠rj (1≦i<j≦M-1)」
となる。そして今度は、この条件1と2を満たすための条件を探したところ、それぞれ次を得た。
   条件1を満たすための条件「10M-1−1=MA」
   条件2を満たすための条件「10j-i−1≠MA」
つまり、この2つの条件を同時に満たすとき、Mは母ダイヤル数となるのだ。

では、この2つの条件を、一本にまとめてみよう。
そのためにまず、「j-i」について考えてみる。iとjには、(1≦i<j≦M-1)という条件があった。
この条件は、「iよりもjの方が大きく、jよりもM−1の方が大きい(またはj=M−1)」と言う意味だ。
ここから、j-iは1以上M−2以下であると言える。
さらに、条件1の10の肩には、M−1が乗っている。
つまり、2つの条件を合わせると、10の肩に1〜M−1のすべての整数が乗ることになる。
2つの条件を同時に満たすとき、Mが母ダイヤル数となるのだから、
「10−1の□が1以上M−2以下のときMの倍数ではなく、□がM−1のときMの倍数」
が条件だと言える。これを、数学っぽくKを使って書くと(Kは1以上M−1以下の整数。数式で書けば、1≦K≦M−1)、
「10−1=MAを満たすKが、M−1のみ」
となる。と、言うことは、つまり!

   「10−1=MAを満たすKが、M−1のみのとき、Mは母ダイヤル数になる」

これが、Mが母ダイヤル数となるための条件である!

9;定理の利用
……と書いたら、あなたは信じるだろうか。
いや、実際、上に書いたことは正しい。
これは「定理」なので、ここでは「母ダイヤル数定理」とでも呼ぶことにしよう。
問題は、この定理が使い物になるのかどうか、と言う点である。
今回のレポートで、私は「Mが母ダイヤル数となるための条件」を探していた。そして見つかったので、一応は満足である。
が、この定理を使って新しい母ダイヤル数を見つけることは、実際問題として難しい。
例えば、M=7を考えてみよう。7が母ダイヤル数であることは、再三述べた通りだ。
しかし、7が母ダイヤル数であることを、母ダイヤル数定理を用いて証明しようとすると、こうなる。

[証明]
101−1=10-1=9, 9÷7=1.2857142857……
102−1=100-1=99, 99÷7=14.1428571428……
103−1=1000-1=999, 999÷7=142.714285714……
104−1=10000-1=9999, 9999÷7=1428.42857142……
105−1=100000-1=99999, 99999÷7=14285.5714285……
106−1=1000000-1=999999, 999999÷7=142857
よって、106−1=107-1−1のみが7の倍数となるので、7は母ダイヤル数である。
Q.E.D.

……見ての通り、めちゃくちゃシンドイ。
そもそも、999999が7の倍数かどうかなど、暗算ではそうそう判断できない。
いや、出来る人もいるだろう。自慢じゃないが、私は出来る。
何故なら、「ある数が7の倍数かどうかを、簡単に判別する方法」が存在するからだ。
(説明すると長くなるので、知りたい方は「7の倍数」などでググっていただきたい)
しかし、これが13や29などになると、もうお手上げである。
一応、13や29にも「判別方法」は存在するが……わざわざそれを持ち出すくらいなら、1÷Mを計算した方が圧倒的に早い。
あるいは、途中で出てきた条件1と2を「母ダイヤル数定理」とした方が、スッキリしていた気がする。
しかしそれでも、一般人には使えない定理である。
私は序盤で、5つの母ダイヤル数を示したが、それより大きな母ダイヤル数は、電卓の桁数が足りなくて発見できなかった。
つまり、私が発見した最大の母ダイヤル数29よりも大きな母ダイヤル数は、手計算で見つけるしかない。
しかし、これよりも大きな母ダイヤル数を見つけるということは、少なくとも30桁以上の割り算を行う必要があり、確実に計算ミスをする。
ミスをしなくとも、時間がかかることは確実である。
プログラミングの知識があれば、1÷Mをひたすら計算し続けるプログラムを作ることで、母ダイヤル数を次々発見できるだろう。
が、私にはプログラミングの知識が皆無なので、それも出来ない。
どなたか出来る方がやってくださるのを、心から待つことにしよう。

……その代わり、と言っては何だが、エクセルを使って、ひたすらM−1回目までの余りを求め続けてみた。
(つまり、条件1と2を使って、母ダイヤル数を探してみた)
その結果発見した、29の次のダイヤル数が、こちらである。
   D(47)=0212765957446808510638297872340425531914893617
数え間違えてなければ、確かに46桁である。確かめてないが、おそらく46倍まで循環するのだろう。
ついでなので、n次ダイヤル数も探してみた。
こちらは意外とたくさん見つかる。例えば、M=31とすれば、2次ダイヤル数032258064516129が出てくる。
また、M=41とすると、なんと8次(!)ダイヤル数02439が現れる。
エクセルファイルをこちらに用意しておくので、興味のある方は他のダイヤル数も探してみてください。

10;結論
と言うわけで、結論。
母ダイヤル数を生むには、以下の定理を用いればよい。
M−1桁定理「1÷Mの循環節がM−1桁ならば、Mは母ダイヤル数」
母ダイヤル数定理「1≦K≦M−1のとき、10−1=MAを満たすKがM−1のみならば、Mは母ダイヤル数」
この2つの定理は、どちらも同じ内容を異なる方法で述べたものである。

ただし、これらの定理はあくまで数学的なもので、実際的に使えるかどうかは別問題である。

11;調査
さて、ついでなのでネットで調べてみよう。
「ダイヤル数」で検索してみると、Wikipediaをはじめ、色々出てくる。
調べるうちに、「ダイヤル数」は「サイクル数」とか「巡回数」とも呼ばれ、むしろそちらの方が一般的らしいことがわかった。
そして、日能研のサイトに、こんなことが書かれていた。

----ここから----
これはどうやって求めるかというと、コンピュータで、やみくもに探す方法もWEB上の記事で見受けられますが、もう少し気の利いた方法もあります。1周期は9か9の約数、2周期は99の約数、3周期は999の約数が候補、……です。

逆に言うと、6周期のものを求めたいと思えば、

999999の約数を探します。999999=9×111111です。9は1周期ですからこれは無視して111111について考えてみましょう。111111=11×10101とか、111111=111×1001とかが浮かぶでしょう。

111=3×37、1001=7×11×13です。

結局、999999=3×3×3×7×11×13×37

となりますが、このうち、3(や9)は1周期、37は(111の約数で)3周期、11は2周期、7と13が6周期となります。
----ここまで----
(http://www.nichinoken.co.jp/column/essay/sansu/2010_m08.html#no11より一部抜粋)

ここで言っている「周期」とは、「循環する回数」のことだ(1周期なら1倍まで、6周期なら6倍まで循環する)。
ここに書かれている解法は、私にとっては目から鱗の解法である。
今回のレポートの上の方で、
「D(M)をM倍すると、999……9(9がM−1個)になる」
と書いた。
だから、999……9を素数の掛け算で表せば、そこには母ダイヤル数が含まれるのだ。
さらにこの方法なら、今回のレポートでさり気なく無視したn次ダイヤル数まで、一気に発見できる。
999……9になることには気がつけたのに、何故こんな簡単な解法に気がつけなかったのか。
そこで気がつけなかったとしても、10n-1=999……9=MAが条件だとわかった時点で、気がついて良かったはずである。
非常に悔しい。
言い訳をすると、私が求めようとしていたものは「ダイヤル数の条件」であり、ここで紹介されているものは「ダイヤル数の探し方」である。
そもそもの方向性が違うので、気が付かなかったとも言える。
……ついでに悔し紛れの突っ込みをすると、この日能研の方法では、「何が素数か」を知っている必要がある。
例えば、上の例では9が6個だか、仮に9が7個だとすると、それを素数の積にするには、
   9999999=3×3×239×4649
とするしかない。
パッとはわからないが、239と4649は素数なのだ。
こんな計算は、239か4649が素数であることを知らないと出来ないに違いない(4649(よろしく)が素数であることは、知っている人も多いかもしれないが)。
私の方法なら、素数を知っている必要が無いので、その分、知識が少なくてすむ……と、言えなくも無い。
なんにせよ、これは負け惜しみである。
ところで、ここから239と4649は7周期のダイヤル数を生むことがわかる。すると、239は34次ダイヤル数、4649は664次(!)ダイヤル数を生むことになる。8次くらいで驚いている場合ではなかった。
ちなみに、上のサイトには、7の倍数の判定方法や、96桁(!)のダイヤル数が紹介されている。
循環小数が循環する理由なども、このレポートよりかなりわかり易く書かれている。
やはりネットは便利だなぁ、というのが、今回の結論その2である。

12;考察
今回のレポートでは、暗黙のうちに「1÷Mは循環小数である」と仮定していた。
では、循環小数でない場合、ダイヤル数は生じないのだろうか?
ひとまず言えることは、もし生じるとしても、それはM−1桁の小数である、と言うことだ。
レポートの中で、「M−1桁の循環節が出来なければ、ダイヤル数にならない」と示したが、
それを同じ理屈で、M−1桁の小数でなければダイヤル数にならない(n次ダイヤル数なら生じるかもしれない)。
また、M桁になることもありえない。M桁になれば、そこから循環小数になってしまうからだ。
さらに、この場合もやはり、Mは素数である。1はあり得ないし、合成数だとするとM−1桁の小数にならないからだ。
そして、M−1桁の小数になるということは、M−1個目の余りが0だということだ。
数式で書けば、rM-1=0ということである。
この式を、途中で出てきた長大な式に代入し、計算していくと、次式を得る。
   10M-1=MA
この式を満たすMとAの組み合わせは、〔M=2、A=5〕か、〔M=5、A=2000〕の、2通りしかない。
(もっとありそうな気がするが、Mが素数だという条件が強力に効いているのだ)
1÷2=0.5、1÷5=0.2であり、5も2もダイヤル数ではないので、循環小数でない場合はダイヤル数は生じない……。
と、言いたいところなのだが。実は、5はダイヤル数である。
何故なら、M=2とすれば、M−1=1であり、0.5は1桁の小数で、5は1倍まで“循環”するからだ。
……ということに気が付いたので、このレポートでは先手を打って「1桁の数は、ダイヤル数と呼ばない」と定義した。
よって、やはり1÷Mが循環小数でない場合は、ダイヤル数は生じない。

13;感想
今回は、当サイト初の数学の研究だった。
書く前から予想したとおり、長大なレポートとなってしまった。果たして、最後までちゃんと読んだ人はいるのだろうか……。
しかも長くなった割に、私は今回のレポートに「一応」の満足しか出来ない。
そもそも私は、「Kに1から順に値を代入していけば、Mが次々と現れる条件式」とか、
「ある数が与えられたとき、それを暗算で母ダイヤル数かどうかを判断する方法」とかを発見するつもりだったのだ。
レポートには書いていないが、「結論」として書いた数式を色々弄繰り回し、もっと簡単に出来ないか模索した。
また、今回出てきた3つの予想以外の予想も色々考え、使い物にならないかと検証した。
しかし、結局何も見つけ出せなかった。
個人的な話になるが、今回の研究に取り掛かる前、私はしばし数学から離れた生活を送っていた。
というのも、大学を卒業して就職したからである。
そして思ったのは、やはり私は勉強が、特に数学が好きだな、ということだ。
そんなわけで、久々に数学が出来た楽しさ半分、上手く行かなかった悔しさ半分の研究であった。
今回のレポートは、敢えて結論へ一直線に向かうようには書かず、私が辿った筋道をそのまま書いた(先述した通り、書いてないこともあるが)。
これを読んだ人に、少しでも数学の面白さが伝われば良いな、と思いながら、今回のレポートを締める。
Q.E.D.以上、証明終了

戻る inserted by FC2 system