DOSEIの日記

技術メモ+日常ログ

ペレリマン数列というものがある。これが結構面白い。
コンピュータでは負数を表わすのに苦労する。というのも、一般に数学では数に"−"の負号をつけて表わしたものであって、実に字面の上での区別である。しかし、無限に大きな正数を考えると、マイナスの数もこの中に入れることができるのである。(ちなみに、だからといってコンピュータでうまく扱えるって話ではない。)
1+x = 0 を満たす x は、 −1 だけである。しかし、次のように数を拡張してみる。 1 は 実はその上の桁に 0 が無限に続いていると考える。つまり、
…0000000001
という数である。ここに、…9999999999という数を足すとどうなるか。答えは…0000000000となるだろう。繰り上がりが無限に続き、1は出てこない。これは 0 である。よって、
…9999999999 = −1
であると言える。
x2x = 0 という方程式の解は、普通の数学では 0 と 1 であるが、上のような拡張を考えると、この他に、…8212890625 と …1787109376 も解になる(実際に掛けてみればわかる)。2次方程式には4つの解が求まった。
この解は、いわゆる解と係数の関係を満たす。つまり、…8212890625 + …1787109376 = …0000000001 と …8212890625 × …1787109376 = …0000000000。
ほかには、たとえば、 −1/9 = …1111111111 など。9倍すれば、ちゃんと−1になるでしょ? 負数が無限10進数で表わされるのは、10進数展開の自然な拡張として得られる。

解の個数が増えてしまうので困るが、実は 基数が素数pの場合はこのようなことがない(整域である)。これをp-進数と言う。これらは、整数のみでなく、有理数や実数、複素数に拡張できる。

参考: p-進数の世界