第19回 循環小数

 

少数(有限小数)は、10のべき乗を分母とする分数で、これを既約分数にすると、分母は25以外の素因数を含まない。

という有限小数は、

となり、分母は25以外の素因数は持たないというわけだケロ。

ちなみに、

の整数にゃ。
逆に、有限小数ならば、nmは非負の整数)という分数になるケロ。

それで、という(既約)分数があって、分母が25以外の素因数を持つとき、無限小数になるんだにゃ。

 ―――何故だろうか? これを読んだ人は、自分で考えてみるにゃ。―――

現に、

1/3 = 0.333・・・

という無限小数になる。

 

これはあまりに簡単なので、

になるにゃ。分母の74 = 2 × 37 と素因数分解できる、分母に25以外の素因数37を持っているから、無限小数になるケロ。
上の小数のようなものを循環小数と呼び、567のように繰り返される数字を循環節と呼ぶにゃ。

そして、循環小数は

といったように、循環節の両端の上に点を打ってあらわすケロ。

と書くのは、間違いにゃ。

循環節の両端の上に点を打つのが正しい表記だケロ。

では、問題をひとつ。

 

問題 循環小数を分数で表わすケロ!!


答えは19/74 ですが、これを無限級数(等比級数の無限級数)を使って求めようって話にゃ。

になるので、この第2項以降は初項、公比の等比級数になり、

 

こういう風に求められる。

参考までに

 

というか、循環小数は、たとえば

とは、無限級数の極限、無限級数の和なんですにゃ。

こちらの方が正式な定義。

ですから、よく、「10.999・・・は違う」なんて言う人がいますが、これは循環小数の定義を誤解しているから、こういう話が出てくるにゃ。

あるいは、こう言ってもいい、

0.999・・・は、1を小数で表わしたものである!!

 

要するに、0.90.09を足せば、1に近づくだろう。0.990.009を足せば、もっと1に近づく。そして、こうした操作で得られる和の極限、上限が1であるということですにゃ。

 

ですが、こうした無限級数を使って循環小数を分数に直すのは大変なので、簡単に得られる方法を紹介するにゃ。

 

ではあるが、と約分できたか(笑)。

この問題は、ネムネコが高校時代に使っていた参考書の問題から引っ張り出した問題なので、ネムネコは実際にこの計算を一切していない。
どうやって、25659990の最大公約数を見つけ出したかが問題になる・・・。

 

この簡単な方法は、ユークリッドの互除法!!


ユークリッドの互除法のアルゴリズム

STEP1 N ÷M の余りをR

STEP2 R = 0 ならばMが最大公約数

STEP3 N ←MM ← R にして、STEP1 に戻る


ネムネコは、九九を全部憶えていないので、四桁の数同士の割り算なんて出来ないにゃ!!
ということで、コンピュータに計算させるにゃ。

これまで何度も登場してきた十進BASICのプログラムは以下の通り。


REM ユークリッドの互除法

LET N = 9990

LET M = 2565

REM ユークリッドの互除法の計算はここから

DO

LET R = N - INT(N/M)*M

IF R = 0 THEN

PRINT "最大公約数";M

EXIT DO

END IF

LET N = M

LET M = R

LOOP

END


そうすると、25659990の最大公約数が135であることがわかり、

9990÷135 = 74
2565÷135 = 19
となり、確かに

となる。