循環小数の桁数と割り算について(3)

はい、前回フェルマーの小定理を使って、素数に対して9連数(つまり、9999999……9という形の数)で割り切れる最小の桁数のものを持ってくると、それが循環小数の循環部桁数に対応してるという話をしました。

これ本当にそうなのかな、というのが、マジで悩んだ話。

前回記事にあるとおり、数値例を出してくると全部当てはまるんだよ。でも「証明」しろとなると……これけっこうごつくないです? ってなるんだよな……

まず、pを素数として、1/pを小数展開する手続きを考えよう。このときまず、10をpで割ったときの商が小数点以下一桁目、余りがX_1とすると、X_1×10をpで割ったときの商が小数点以下二桁目、余りがX_2とすると、X_2×10をpで割ったときの商が小数点以下三桁目、……と、以下続いていくわけだ。

で、pが2でも5でもない素数の場合、X_i×10は絶対に割り切れない。なぜならX_iが割り切れなくて、そしてX_i×10はX_iの約数か2か5でしか割り切れないからだ。だからX_iは決して0にはならない。(厳密に言うとこれは数学的帰納法でやるんでX_1の処理が必要だけどわかるよね? X_0=1とするのだ)

そしてあり得るX_iの可能性は最大でもp-1通りだから、鳩ノ巣原理から、p桁目までで必ずX_i=X_jとなるi,j(ただしi<j)が存在するわけで、そしたらj-i桁で循環してるよねこれ、というのが、普通の循環小数展開の存在定理だ。

で、この手続きからただちにわかるように、まずpが2でも5でもない素数なら、1/pの循環小数展開は一意的です。いや1.000000...=0.999999...みたいな例はないよって意味で。上の手続きのX_iをどっかいじるとただちに計算が壊れるので、一意的にならざるを得ない。

そして次に、前の記事でフェルマーの定理を用いて示したように、X_j=1となるjがp-1の約数の中にあるのだ。とすればi=0としてj桁で循環することがわかる。そのjで最小の桁数のものを持ってくれば、それが循環に必要な桁数だ。

本当にそうか? もっと小さい桁数とかないの?

たとえば1/p=0.{ABCD}=0.AB{CDE}みたいなことはないか?({}内が循環部です)こうだとすればもっと小さな桁数で循環するよね。

けどそれ、ないんですよ。だって上の場合、ちょっと計算すれば実はA=B=C=Dであることがすぐわかる。もっと一般の話をすると、pが割り切れる9連数の最小桁数がJだとして、1/pが0.AB{CDE}みたいになってる場合、まずX_J=1になっているから、CDEのどれかは対応するX_iが1になるものじゃなきゃいけない。けれどJ=1か3でなければ、対応するX_iが1になるものがC,D,Eの中に複数あるか、ひとつもないかということが起こる。だからJは1か3である。逆に言うと、循環する小数展開をなんらかの形で得たときには、必ずJで割り切れる桁数の循環部でなければならない。ということで、循環に必要な最小桁数はJなのでした。以上解説終わり。

……と、こんなにごつくなるんだよなあ。この話。だからやりたくなかったんだけど、なんか論文で頭疲れて気分転換に書いてしまった。

あ、ちなみにFGOはいま19節くらいです。論文が煮詰まり過ぎて進んでない。なんでこんなことに……うごごご……

はい、この話はここまでで。書いてて「べつに素数じゃなくても10と互いに素ならよくね?」とか頭よぎりましたが幻覚だと思うことにします。あたまこわれる。

この記事が気に入ったらサポートをしてみませんか?