「美しい数式」の話、続編

以前書いた記事(『「美しい数式」の話』)で紹介した等式


1/9801
.
= 0.00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
.
90 91 92 93 94 95 96 97 99 (*1)
(ここで右辺は「000102 ... 99」が以下循環する無限小数、という意味です)に関連して、@h_kagamiさんから以下のコメントをいただきました。

@MarriageTheorem 12345679 x 9 = 111111111 を想起します。もしかして本質的に類似の現象でしょうか。http://d.hatena.ne.jp/MarriageTheorem/20080727/1217129691

http://twitter.com/h_kagami/status/40807631069249536

この等式自体は美しい数式の例として頻繁に紹介される有名な等式なのですが、確かに言われてみれば、12345679という左辺の数の並びには、式(*1)右辺の循環小数の循環部の並びに似た匂いを感じます。となると、両者には何らかの関連性があると期待したくなるものですので、両者の等式の関係を少し考察してみました。

大まかに言いますと、以下に述べる内容は「等式(*1)と等式 9 × 12345679 = 111111111 の各々の背後に流れる「理由」の部分は、ある意味で互いに同値なものとなっている」ということです。

「掛け算型」から「割り算型」へ

冒頭に挙げた循環小数の等式(*1)は、9801 ( = 992)に関連する「割り算型」の美しい等式と言うことができ、一方@h_kagamiさんのコメントにある等式 12345679 × 9 = 111111111 は、9に関連する「掛け算型」の美しい等式と言えましょう。
まず、後者の「掛け算型」の等式から、前者の「割り算型」に似た9に関連する等式を導けないだろうか、と考えます。今、式(*1)の循環小数の循環部との整合性を保つため(および桁数を調整するため)、左辺を 012345679 × 9 と表記した上で、以下のようにこの等式の桁を9桁ずつずらしてできる等式を考えていきます(見やすさのために、ところどころの桁区切りに空白を入れています)。


9 × 0 . 012345679 = 0 . 111111111
9 × 0 . 000000000 012345679 = 0 . 000000000 111111111
9 × 0 . 000000000 000000000 012345679 = 0 . 000000000 000000000 111111111
. (*2)
.
.
これらの各辺ごとに足し合わせた無限和を考えると、右辺は 0.11111 ... と1が無限に続く循環小数、即ち1/9となります。一方左辺は「012345679が循環する無限小数」(これを一時的に A とおきます)の9倍となります。つまり9×A = 1/9 となり、両辺を9で割ることにより、冒頭の「割り算型」の等式と類似した等式

. .
1 / 81 = 0.012345679 (*3)
が得られました(81 = 92であることに注意して下さい)。

「割り算型」から「掛け算型」へ

逆に、9801即ち992に関する等式(*1)から、99に関連する「掛け算型」の等式を導いてみます。今、式(*1)右辺の循環部 000102 ... 9799を(長いので)Bと書くことにしますと、小数表示の桁を左側にBの長さ(198桁)だけずらすことで以下の等式が得られます。

10198 × 1 / 9801 = B.BBBBB ...

10198 = 10099に注意した上で、この等式から等式(*1)の 1 / 9801 = 0.BBBBB ... を各辺ごとに引くと、(10099 - 1) / 9801 = B となります。この左辺の分子は 10099 - 1 = (100 - 1)×(10098 + 10097 + ... + 100 + 1) = 99 ×010101 ... 0101 (「01」を99回繰り返す)となりますので、99で約分した上で両辺に99を掛けることで、最終的に


99 × 000102 ... 969799 = 010101 ... 0101 (右辺は「01」を99回繰り返す) (*4)
という「掛け算型」の等式が得られました。

一般化

上で行った「掛け算型」と「割り算型」の等式の相互導出は、より一般の場合にも拡張できます。
今、n進数k桁の数を0からnk-1まで(桁数がk桁に満たない場合は先頭に0を追加する)順に、2番目に大きい数(nk - 2)だけ除いて並べたものをB(n,k)と書くことにします。例えばB(10,1)は012345679、B(10,2)は上に出てきたBとなります。B(n,k)の長さはk (nk - 1)です。すると、以前の記事で説明した通り、0.B(n,k)B(n,k)B(n,k) ... とB(n,k)が繰り返される(n進数の)循環小数

1/(nk-1)2 = 0.B(n,k)B(n,k)B(n,k) ...  (*5)

という簡素な表示を持ちます(「割り算型」の等式)。
この等式の両辺にnk (nk - 1)を掛けると、(nk = Nとおいて)N(N-1) / (N-1)2 = B(n,k).B(n,k)B(n,k) ... となり、そこから等式(*5)を引くと (N(N-1) - 1) / (N-1)2 = B(n,k)が得られます。
上で行ったのと同様に左辺をN-1で約分すると、(NN-2 + NN-3 + ... + N + 1) / (N-1) となりますので、最終的に


(N-1) × B(n,k) = NN-2 + NN-3 + ... + N + 1   (*6)
という等式が得られます(「掛け算型」の等式)。ここで右辺の値は、n進数で「000 ... 01」(0がk-1個続いた後に1が一つ)がN-1個並ぶ数であることに注意して下さい。

具体例を挙げますと、n = 10でk = 1のときが等式 9 × 12345679 = 111111111、n = 10でk = 2のときが等式(*4)に対応します。他の例としては、

  • n = 2でk = 3のとき、(111)2 × (000 001 010 011 100 101 111)2 = (001 001 001 001 001 001 001)2 (両辺は2進数表示、見やすいように桁区切りの空白を入れています)
  • n = 16でk = 1のとき、0xF × 0x0123456789ABCDF = 0x111111111111111 (両辺は16進数表示、「0x」は接頭語)

といった等式が得られます。
逆に、「掛け算型」の等式(*6)から出発して、等式の列(*2)で行ったように桁をずらしつつ足し合わせることで、「割り算型」の等式(*5)を復元することもできます(長くなったので詳細は割愛します)。

まとめ

ということで、1/9801の美しい循環小数表示と、美しい掛け算 9 × 12345679 = 111111111 の間には、ただの偶然だけではない関係があると言えるでしょう。
これはわかってしまえば決して難しいことではないのですが、現象の説明が難しいかどうかとその現象を感じ取れるかどうかは別問題ですので、冒頭に引用した@h_kagamiさんのコメントはやはり素晴らしいものであると言えましょう。