循環小数
循環小数とは、小数点以下のある桁から先で同じ数字の列が無限に繰り返される小数のことである。繰り返される数字の列を循環節という。
循環小数の循環節は上線(0.123)や下線(0.123)
などを用いて示される(#表記法を参照)。
循環小数は、基数と共通でない因数を含む分母を持つ整数の分数に対応する。例えば基数を 10 (= 2 × 5) とした場合、1 (= 0.2), 7 (= 0.056) などは循環小数にならないが、1 (= 0.142857...), 1 (= 0.0285714...) は循環小数となる。
また循環小数は、対応する分数の分母と基数が互いに素かどうかで分類でき、分母と基数が互いに素なものを純循環小数pure recurring decimal、それ以外のものを混合循環小数mixed recurring decimalと呼ぶ。また整数分数の分母が基数の素因数の積となる場合、それは循環小数とならず有限小数で表される。
ある循環小数の循環節が小数第一位から始まる場合、それは純循環小数となり、循環節が小数第二位以降で始まる場合、それは混合循環小数となる。混合循環小数は冒頭の循環していない有限小数部分とそれ以降の循環小数の二つに分離して考えることができる。
循環小数の循環節とは、小数部分の周期的な数列の中で最小の長さものである。例えば 1 = 0.3333… は、数列 33 や数列 333 が連続して現れる小数と見なせるが、循環節は最小の数列 3 となる。
循環節の末尾は 0 になり得る。例えば、 26 = 64 = 2.370370… の循環節は 370 となる。
循環節の先頭は小数第二位以降に現れ得る。例えば、十進法の 5 = 0.04629629… の循環節は、小数第三位からの 629 となる。
ある数が有限小数で表せるかは基数に依存し、既約分数の分母が基数の冪を割り切れる場合のみ、その数は有限小数として表され得る。したがって、ある既約分数が循環小数で表示されるかもまた基数に依存している。例えば 1 は、十進法では有限小数 0.2 で表されるが、二進法では循環小数 0.00110011… で表される。
また有限小数は、末尾の桁の後ろに 0 を無限に並ぶと見なせば、形式的に循環小数と見なせる。同様に、0.999... などの数列を用いて、有限小数を循環小数に書き換えることもできる。
循環小数(無限小数)の循環節が「0」もしくは「9」の場合は、どちらも実質的には有限小数となる。一般に、正の実数について、有限小数は二種類の循環小数で表せ、逆に、二通りに小数表示できるのはその一方が有限小数である場合に限る。
一つには、循環節は 0(0桁という意味でなく、繰り返し単位が「0」)と考えることができる。もう一つは、有限小数の(0 でない)末尾を 1 減らし、それよりあとの位を全て「基数 − 1」にするというものである。
例えば、1 は 1.0000… と表せ、これは循環節が 0 の循環小数である。一方、末尾の 1 を 1 減らして 0 にし、それよりあとを全て 9 にした 0.999... に等しいとも考えられる。これは循環節が 9 の循環小数となる。
0.9999… = 1 は以下のように証明できる。
x = 0.9999…とする。
同じく、十二進法の 1 は小数表示が 0.4 であるが、これは 0.4000… ということであり、循環節が 0 の循環小数である。一方、0.3BBB… とも考えられ、これは循環節が B(十一)の循環小数となる。
同様に、二十進法の 1 も通常 0.4 と表すが、これは 0.4000… ということであり、循環節が 0 の循環小数である。一方、0.3JJJ… とも考えられ、これは循環節が J(十九)の循環小数となる。
有理数が有限小数表示を持つのは、十進法表示なら、分母の素因数が 2, 5 のみであるときに限る。一般の N進法表示では、分母の素因数が N の素因数になっていることである。例えば、十八進法なら分母の素因数が 2, 3 のみであるときである。
循環小数によって表される数は、整数の分数としても表すことができ、有理数に含まれる。他方、有限でない非循環小数で表される数が存在し、これらは有理数に含まれない。実数のうち有理数に含まれない数を無理数という。無理数の例には2の平方根や円周率が挙げられる。前述の通り有限小数も循環小数で表すことができ、有理数はすべて循環小数で表せるが、反対に循環小数で表せる実数は有理数に限る。
循環節を示す方法として以下の方法がしばしば用いられる:
循環節の先頭と末尾の数に点をつける(例:0.12345)
循環節全体に上線をつける(例:0.12345)
循環節全体に下線をつける(例:0.12345)
循環節全体を括弧でくくる(例:0.12(345))
規約として、循環節は小数部から始まるようにする。例えば 123.123 を 123 とは書かない。
無限小数は、厳密には極限の概念を用いて定義される。特に、循環小数が表す数は無限等比級数、すなわち等比数列の和の極限と見なすことができ、ゆえに有理数である。例えば、
2.\dot{4}2\dot{3}=2+\frac{423}{10^3}+\frac{423}{10^6}+\frac{423}{10^9}+\cdots=2+\frac{423}{10^3-1}=2+\frac{47}{111}=\frac{269}{111}
である。
一般には、冒頭の循環していない有限小数部分を分離し a とおき、循環部分の循環節の部分だけ取り出した小数部分を b、循環節の長さを n とすれば
a+b\left(1+\frac{1}{10^n}+\frac{1}{10^{2n}+\frac{1}{10^{3n}+\cdots\right)
となる。ところで、級数部分の総和は
\frac{1}{1-\frac{1}{10^n}=\frac{10^n}{10^{n}-1}
a+b\left(\frac{10^n}{10^{n}-1}\right)
となることが分かる。この方法をロバートソン (J.Robertson, 1712-1776) の方法という。
やや厳密さに欠ける説明として、以下のようなものがある。
x = 2.423423423…
とおく。両辺を1000倍すると、「1000倍すると小数点は3桁右に移動するから」
1000x = 2423.423423…
辺々引くと「循環部分が打ち消しあって」
999x = 2421
となる。よって、x = 269 が分かる。「 」の主張が正しいことが曖昧であるが、無限等比級数の値の計算と同等であることからこの計算は正当化される。
自然数の逆数の循環節の長さについて、ある長さとなるような最小の自然数を、循環節の長さを0から小さい順に並べると
1, 3, 11, 27, 101, 41, 7, 239, 73, 81, 451, 21649, 707, 53, 2629, 31, 17, 2071723, 19, 1111111111111111111, 3541, 43, 23, 11111111111111111111111, 511, 21401, 583, 243, 29, 3191, 211, 2791, 353, 67, 103, 71, 1919, 2028119, 909090909090909091, …
である(A003060)。
2 と 5(一般には、基数の約数たる素数)以外の素数 p の逆数の循環節の長さは、p − 1 の約数である。有限小数の循環節の長さを1とするなら、2 と 5(基数の約数たる素数)もこの条件を満たす。
このことは、1 の循環節の長さが k であることと、10k ≡ 1 (mod p) が同値であることから、初等的な群論より導かれる。
これがちょうど p − 1 となるような素数 p は、小さな順より(2 と 5 を除いて)
7, 17, 19, 23, 29, 47, 59, 61, 97, …
である(A1913)。このような p に対する 1 の循環節は、巡回数となる。
例えば、1 の循環節 142857 や、1 の循環節 0588235294117647 は巡回数である。素数を、分母とする数の循環節が奇数のものと偶数のものに分けると、2 が偶数、1 が奇数である。
N進法表示においてq桁の、レピュニット111...と999...(一般にはNq-1)の逆数の形の循環節の長さはq桁である。また有理数を整数倍したり、分母の数に対して基数に含まれる素因数を掛けた場合、循環節の長さが増すことはない。
N進法表示において、1 の小数は必ず 0.1111… になる。九進法の場合 1 が 0.1111… になり、十進法の場合 1 が 0.1111… になる。
乗算表の最後に来る (10-1)2 の逆数は、整数第二位に来る数が抜けて、(10-1)桁の循環小数になる。例えば、六進法の場合「五五・四六一」なので 52 の逆数は 1 = 0.01235… となり、4が抜けて循環節は5桁になる。九進法の場合「八八・七九一」なので 82 の逆数は 1 = 0.01234568… となり、7が抜けて循環節は8桁になる。
複数桁で一の位が1の数を逆数にすると、循環小数になる。例えば、十二進法の場合 1 = 0.03A85232B… になり、十六進法の場合 1 = 0.07C1F… になる。
循環節の短さは、10 −1 ならびに 10n − 1 を素因数分解した時にどんな数が来るかによって決まる。
2−n では九進法 (10 − 1 = 8 = 23) が、3−n では十進法(10 − 1 = 9 = 32)が、5−n では六進法 (10 − 1 = 5) が、それぞれ循環節が最も短くなる。
十八進法では、100 − 1 = HH = H×11、1000-1 = HHH = 73×H、10000 − 1 = HHHH = 52×D×H×11 となる。従って、5 は2乗までが4桁、7 は3乗までが3桁、D も4桁となり、12 (= 4×5) までの素数のうち、B が十桁になる以外は全て循環節が4桁以下になる。
最も素朴には、充分な桁数の小数表記を求め、その周期を見つける。同様に、有限小数の桁数も、素因数分解した時の大きい方の冪指数によって決まる。
ただし、同じ数字の並びが現れてもより長い周期の一部かもしれない(たとえば 1212123 = 0.1212123 の循環節を 12 と求めてしまうかもしれない)ので、循環節の長さの上限を事前に知っておかなければならず、それだけの桁数まで求めて初めて、循環節を求められる。上限としては#一般の有理数にて挙げたものがあるほか、「分母 − 1」が使える。
十進数の 1 の循環節は、素因数分解すると3456 = 27×33 なので、7桁の後に3桁の循環節が来る。よって、1 = 0.0002893518… となる。
一方で、十進数の 3456 は六進数の場合 24000 だが、素因数分解すると 24000 = 211×33 となるので、分子が 34で、116桁 = 7桁の有限小数になる。よって、1 = 0.0000213 となる。
十進数の 1 の循環節は、891 = 34×11 なので、3-4 と 1 の循環節の長さを掛けたものになる。十進数では 3-4 は 32 桁、1 は2桁の循環節なので、32×2 = 1810桁の循環小数になる。よって 1 = 0.001122334455667789… となる。
一方で、十進数の 891 は十八進数の場合 2D9 で、素因数分解は 2D9 = 34×B となる。10 = 2×32 なので、1 の循環節は 1010桁に対して、3−4 は 4桁ではなく2桁に縮まり、2桁の後に 1010桁の循環節が来る。よって、1 = 0.0069ED1B834G… となる。
割り算を筆算で求めれば、余りに同じ数が現れた時点で、繰り返しに入ったことがわかる。例えば、十進法の 1 を小数表示する場合、次のような計算を行う。
0.142857
7 ) 1.000000
1
これ以降は同じ計算の繰り返しとなるので、1 = 0.142857 であることが分かる。この例では、1 を 7 で割った商と余りを計算することを繰り返している。
別のN進法でも、筆算によって循環小数が現れる。六進法の 1(= 5-2 = 十進法の 1)を筆算で小数表示する場合、次のような計算を行う。
0.01235
41 ) 1.00000
1
これ以降は同じ計算の繰り返しとなるので、1 = 0.01235 であることが分かる。この例では、整数を 41 で割った商と余りを計算することを繰り返している。
被除数が1以外の場合も、同じように筆算で循環小数が現れる。割り切れる例も併載する。例として、被除数を 28、除数を 33とする。
十六進法の 100 ÷ 1B(28 ÷ 33、十進法の場合 256 ÷ 27)
9.7B425ED097B
1B ) 100.00000000000
D 0
B D
1 30
1 29
100
被除数が除数より大きい例だが、整数部分を含めて「97B」が2回現れているので、これ以降は同じ計算の繰り返しとなり、100÷1B = 9.7B425ED09 となり、小数部分は9桁の「7B425ED09」が繰り返されることが分かる。この割り切れない「0.7B425ED09」を分数化すると、十六進法で D、十進法で 13 となる。
六進法の 1104 ÷ 43(六進冪指数の場合 212 ÷ 33、十進法の場合 256 ÷ 27)
13.252
43 ) 1104.000
21 0
13 0
4 00
3 43
小数部分が3桁の「252」で終わって、1104÷43 = 13.252 となる。割り切れる小数「0.252」に相当する六進分数 252 は、十六進法で 68、十進法で 104 となり、既約分数にすると六進法で 21、十六進法で D、十進法で 13 となる。
一般に、a を b で割る筆算では、ある整数を b で割った商と余りを計算することを繰り返すが、b で割った余りは 0 から b − 1 の b 通りしかないため、余りが 0 になって計算が終わるのでなければ、必ずどこかで同じ余りが出現して同じ計算の繰り返しとなる。ゆえに、有理数を小数表示すると循環小数になる。この方法では循環節の長さの上限を事前に知っておく必要はないが、「分母 − 1」以下であることがこれによりわかる。
基数に素因数として含まれない素数 p の逆数に対しては、循環節を m 桁とすると 10m - 1 は p で割り切れ、商が循環節となるので、p - 1 の約数それぞれに対し 10m - 1 が p で割り切れるかを試せばよい。m が小さい順に試せば、計算量を節約できる(たとえば 3 = 0.333… に対しては 3 (m = 1) も 33 (m = 2) もこれを満たすので、小さい順でなければならない)。