有理数とp進数の関係

Last-modified: Wed, 26 Apr 2017 16:32:25 JST (1683d)
Top > 有理数とp進数の関係

ここまでで、「整数\( n \)に対応する\( p \)進数\( n^{(p)} \)」や「正の整数\( v \)を用いて\( p^{-v} \)と表せる有理数に対応する\( p \)進数\( (p^{-v})^{(p)} \)」を定義しました。いよいよ、それらを拡張する方法で「一般の有理数\( r \)に対応する\( p \)進数\( r^{(p)} \)」を定義しようと思います。

今までも、正の整数\( n \)に対して\( (-n)^{(p)} \)を定義する際には\( (-n)^{(p)} + n^{(p)} = 0^{(p)} \)という条件を課したり、正の整数\( v \)に対して\( (p^{-v})^{(p)} \)を定義する際には\( (p^{-v})^{(p)} \times (p^v)^{(p)} = 1^{(p)} \)という条件を課したり、好き勝手に定義するのではなく適切な条件を課すことで有理数の四則演算と整合的になるようにしていました。有理数\( r \)に対応する\( p \)進数\( r^{(p)} \)も好き勝手に定義するのではなく、\( qr \)が整数となるような整数\( q \)に対しては\( q^{(p)} \times r^{(p)} = (qr)^{(p)} \)が常に成り立つように定義しようと思います。そのために、次の命題を証明することを今回の最初の目的とします。

命題1(有理数の\( p \)進法表記一意存在性)
\( r \)を有理数とする。この時、次の条件をみたすような\( p \)進数\( x \)がただ1つ存在する。
\( qr \)が整数となるようないかなる整数\( q \)に対しても、\( q^{(p)} \times x = (qr)^{(p)} \)が成り立つ。

有理数の\( p \)進法表記の特徴付けでただ1つ存在することが保証される\( x \)\( r^{(p)} \)として定める流れにしたいのですが、そのためにはこれまで定義してきた「整数\( n \)に対応する\( p \)進数\( n^{(p)} \)」や「正の整数\( v \)を用いて\( p^{-v} \)と表せる有理数に対応する\( p \)進数\( (p^{-v})^{(p)} \)」の定義と整合的であることを確認する必要があります。

命題2(整数の\( p \)進法表記の乗法性その1)
\( n \)を整数とする。この時、いかなる整数\( q \)に対しても\( q^{(p)} \times n^{(p)} = (qn)^{(p)} \)が成り立つ。

証明

\( n \)\( q \)が共に自然数であるとする。筆算を用いた\( p \)進数の掛け算の定義から、\( q^{(p)} \times n^{(p)} \)は自然数\( q \)と自然数\( n \)\( p \)進法表記したものを掛けたものなので、自然数\( qn \)\( p \)進法表記したものに他ならず、自然数に対応する\( p \)進数の定義からそれは\( (qn)^{(p)} \)である。

\( n \)が自然数で\( q \)が負の整数であるとする。筆算を用いた\( p \)進数の掛け算の定義から、\( (-q)^{(p)} \times n^{(p)} \)は自然数\( -q \)と自然数\( n \)\( p \)進法表記したものを掛けたものなので、自然数\( -qn \)\( p \)進法表記したものに他ならず、それは\( (-qn)^{(p)} \)である。従って、\( (-1)^{(p)} \)を用いた負の整数に対応する\( p \)進数の定義から、

\[ q^{(p)} \times n^{(p)} = ( (-1)^{(p)} \times (-q)^{(p)}) \times n^{(p)} = (-1)^{(p)} \times ( (-q)^{(p)} \times n^{(p)}) = (-1)^{(p)} \times (-qn)^{(p)} = qn^{(p)} \]

である。

\( n \)が負の整数で\( q \)が自然数であるとする。上の議論から、\( q^{(p)} \times n^{(p)} = n^{(p)} \times q^{(p)} = (nq)^{(p)} = (qn)^{(p)} \)である*3

\( n \)\( q \)が共に負の整数であるとする。筆算を用いた\( p \)進数の掛け算の定義から、\( (-q)^{(p)} \times (-n)^{(p)} \)は自然数\( -q \)と自然数\( -n \)\( p \)進法表記したものを掛けたものなので、自然数\( (-q)(-n) = qn \)\( p \)進法表記したものに他ならず、それは\( (qn)^{(p)} \)である。従って、\( (-1)^{(p)} \)を用いた負の整数に対応する\( p \)進数の定義から、

\begin{eqnarray*} & & q^{(p)} \times n^{(p)} = ( (-1)^{(p)} \times (-q)^{(p)}) \times ( (-1)^{(p)} \times (-n)^{(p)}) = ( (-q)^{(p)} \times (-1)^{(p)}) \times ( (-1)^{(p)} \times (-n)^{(p)}) \\ & = & (-q)^{(p)} \times ( (-1)^{(p)} \times ( (-1)^{(p)} \times (-n)^{(p)}) ) = (-q)^{(p)} \times ( ( (-1)^{(p)} \times (-1)^{(p)}) \times (-n)^{(p)}) \\ & = & (-q)^{(p)} \times (1^{(p)} \times (-n)^{(p)}) = (-q)^{(p)} \times (-n)^{(p)} = (qn)^{(p)} \end{eqnarray*}

である*4

命題3(整数の\( p \)進法表記の乗法性その2)
\( v \)を正の整数とする。この時、\( qp^{-v} \)が整数となるいかなる整数\( q \)に対しても\( q^{(p)} \times (p^{-v})^{(p)} = (qp^{-v})^{(p)} \)が成り立つ。

証明

\( q=0 \)とする。この時\( q^{(p)} \times (p^{-v})^{(p)} = 0^{(p)} \times (p^{-v})^{(p)} = 0^{(p)} = (qp^{-v})^{(p)} \)である。

\( q \)が正の整数であるとする。\( qp^{-v} \)が整数であることから、自然数\( q \)\( p \)進法表記\( q^{(p)} \)は一番右の桁から\( v \)桁目まで\( 0{} \)が並ぶ*5\( p \)進数に\( (p^{-v})^{(p)} \)を掛けることは小数点を右に\( v \)個ずらすことと同じであるので、\( q^{(p)} \times (p^{-v})^{(p)} \)\( q \)\( p \)進法表記\( q^{(p)} \)の一番右の桁から\( v \)桁目までをなくしたもの*6である。それは自然数\( qp^{-v} \)\( p \)進法表示\( (qp^{-v})^{(p)} \)に他ならない。

\( q \)が負の整数であるとする。上の議論から、\( (-q)^{(p)} \times (p^{-v})^{(p)} = (-qp^{-v})^{(p)} \)が成り立つ。\( (-1)^{(p)} \)を用いた負の整数に対応する\( p \)進数の定義から、

\[ q^{(p)} \times (p^{-v})^{(p)} = ( (-1)^{(p)} \times (-q)^{(p)}) \times (p^{-v})^{(p)} = (-1)^{(p)} \times ( (-q)^{(p)} \times (p^{-v})^{(p)}) = (-1)^{(p)} \times (-qp^{-v})^{(p)} = (qp^{-v})^{(p)} \]

である。

上の2つの命題の証明は細かい場合分けを行っています。これまでに導入した「特別な有理数に対応する\( p \)進数の定義」が「自然数に対応する\( p \)進数の定義」と「負の整数に対応する\( p \)進数の定義」と「正の整数\( v \)を用いて\( p^{-v} \)と表せる有理数に対応する\( p \)進数の定義」の3段階に分かれていたことを思い出すと、その場合分けが自然なことであり、それを完全に避けて証明することの難しさが分かると思います*1

さて、以上で有理数の\( p \)進法表記の特徴付けを証明する大義名分が確認できました。

まず\( x \)の存在を示す。\( r \)は有理数であるので、互いに素な正の整数\( d \)と整数\( n \)を用いて\( r = \frac{n}{d} \)と表すことが出来る。\( p \)進法を用いた自然数に対応する\( p \)進数の定義より、\( d^{(p)} \neq 0^{(p)} \)である。\( 0{} \)でない\( p \)進数の可逆性により\( p \)進数\( (d^{(p)})^{-1} \)が定義され\( (d^{(p)})^{-1} \times d^{(p)} = 1^{(p)} \)となる。\( p \)進数\( (d^{(p)})^{-1} \times n^{(p)} \)\( x \)と置く。\( qr \)が整数となるようないかなる整数\( q \)に対しても\( q^{(p)} \times x = (qr)^{(p)} \)が成り立つことを示す。

\( qr \)が整数であることと\( d \)\( n \)が互いに素であることから、\( \frac{q}{d} \)は整数である。従って整数の\( p \)進法表記の乗法性より、\( d^{(p)} \times \left( \frac{q}{d} \right)^{(p)} = q^{(p)} \)\( \left( \frac{q}{d} \right)^{(p)} \times n^{(p)} = \left( \frac{qn}{d} \right)^{(p)} = (qr)^{(p)} \)が成り立つ。また\( (d^{(p)})^{-1} \times d^{(p)} = 1^{(p)} \)より、

\[ q^{(p)} \times (d^{(p)})^{-1} = (d^{(p)})^{-1} \times q^{(p)} = (d^{(p)})^{-1} \times (d^{(p)} \times \left( \frac{q}{d} \right)^{(p)}) = ( (d^{(p)})^{-1} \times d^{(p)}) \times \left( \frac{q}{d} \right)^{(p)} = 1^{(p)} \times \left( \frac{q}{d} \right)^{(p)} = \left( \frac{q}{d} \right)^{(p)} \]

が成り立つ。以上より、

\[ q^{(p)} \times x = q^{(p)} \times ( (d^{(p)})^{-1} \times n^{(p)}) = (q^{(p)} \times (d^{(p)})^{-1}) \times n^{(p)} = \left( \frac{q}{d} \right)^{(p)} \times n^{(p)} = (qr)^{(p)} \]

となる。

次に\( x \)の一意性を示す。そのためには「\( qr \)が整数となるようないかなる整数\( q \)に対しても\( q^{(p)} \times x' = (qr)^{(p)} \)が成り立つ」という条件を満たすいかなる\( p \)進数\( x' \)も、\( x' = x \)を満たすことを示せば良い。\( dr = n \)であることから\( d^{(p)} \times x = (dr)^{(p)} \)かつ\( d^{(p)} \times x' = (dr)^{(p)} \)が成り立つ。従って、

\begin{eqnarray*} & & x' = 1^{(p)} \times x' = ( (d^{(p)})^{-1} \times d^{(p)}) \times x' = (d^{(p)})^{-1} \times (d^{(p)} \times x') = (d^{(p)})^{-1} \times (dr)^{(p)} = (d^{(p)})^{-1} \times (d^{(p)} \times x) \\ & = & ( (d^{(p)})^{-1} \times d^{(p)}) \times x = 1^{(p)} \times x = x \end{eqnarray*}

となる。

有理数の\( p \)進法表記の特徴付けでただ1つ存在することが保証される\( x \)\( r^{(p)} \)と置きます。以上により、一般の有理数\( r \)に対応する\( p \)進数\( r^{(p)} \)を定義することが出来ました。その定義の方法から、(\( p \)進数の演算が整数の演算を拡張していることを認めた上では)\( p \)進数の演算が有理数の演算を拡張していること、すなわちいかなる有理数\( r_1 \)\( r_2 \)に対しても

\begin{eqnarray*} \begin{array}{rcll} r_1^{(p)} + r_2^{(p)} & = & (r_1+r_2)^{(p)} & (p \textrm{進数だと思って足した値と、有理数だと思って足した値が、同じ} p \textrm{進数になる}) \\ r_1^{(p)} \times r_2^{(p)} & = & (r_1 \times r_2)^{(p)} & (p \textrm{進数だと思って掛けた値と、有理数だと思って掛けた値が、同じ} p \textrm{進数になる}) \end{array} \end{eqnarray*}

が成り立つことが分かります。

それでは、どのような\( p \)進数が有理数に対応するかを決定しましょう。実数であって途中から周期を持つような符号付き小数*2を循環小数と呼ぶように、ここでは途中から周期を持つような\( p \)進数を循環\( p \)進数と呼ぶことにします。実数が有理数である必要十分条件は、その符号付き小数展開が循環小数であることでした。その証明と似た方法で、有理数に対応する\( p \)進数を特徴付けることが出来ます。

命題4(有理数に対応する\( p \)進数の特徴付け)
\( \alpha \)\( p \)進数とする。この時、以下は同値である。
(1) \( \alpha = r^{(p)} \)を満たすような有理数\( r \)がただ1つ存在する。
(2) \( \alpha = r^{(p)} \)を満たすような有理数\( r \)が存在する。
(3) \( \alpha \)は循環\( p \)進数である。

有理数に対応する\( p \)進数の特徴付けを証明するために、フェルマーの小定理の拡張である「オイラーの定理」を紹介します。

\( d \)を正の整数として、\( d \)と互いに素な自然数\( m \)であって\( 1 \leq m \leq d-1 \)を満たすものの個数を\( \varphi(d) \)と置きます。このようにして定まる、正の自然数を代入して正の自然数を返す関数\( y = \varphi(x) \)のことをオイラー関数(Euler function)と呼びます。オイラー関数には整数論的に重要な性質がいくつもありますので、興味のある人はオイラー関数について調べたりを具体的に計算してみたりしてみましょう。

定理5(オイラーの定理)
\( n \)\( d \)と互いに素な整数とする。この時、\( n^{\varphi(d)} - 1 \)\( d \)で割り切れる。

証明

\( d \)と互いに素な自然数\( m \)であって\( 1 \leq m \leq d-1 \)を満たすもの全体の集合を\( D \)と置く。\( \varphi(d) \)の定義から、\( D \)はちょうど\( \varphi(d) \)個の要素を持つ。

\( D \)の各要素\( m \)に対して、\( nm \)\( d \)で割った余りを\( f(m) \)と置く。\( n \)\( m \)\( d \)と互いに素であることから\( nm \)\( d \)と互いに素であり、従って\( nm \)\( d \)の倍数を引いて得られる\( f(m) \)もまた\( d \)と互いに素である。従って、\( f(m) \)\( D \)の要素となる。

いかなる\( D \)の要素\( m \)といかなる\( D \)の要素\( m' \)に対しても、\( m \neq m' \)ならば\( f(m) \neq f(m') \)であることを背理法で示す。\( f(m) - f(m') \)\( nm - nm' = n(m-m') \)\( d \)の倍数を引いたものである*7\( f(m) = f(m') \)であると仮定する。\( f(m) - f(m') = 0 \)より、\( n(m-m') \)\( d \)で割り切れる。\( n \)\( d \)と互いに素であるため、それは\( m-m' \)\( d \)で割り切れるということを表す。\( m-m' \)\( -(d-1) \leq m-m' \leq d-1 \)を満たす\( 0{} \)でない自然数であるので\( d \)で割り切れず、矛盾する。以上より、\( f(m) \neq f(m') \)である。

\( D \)の要素を小さい順に並べ、\( m_1, m_2, \ldots, m_{\varphi(d)} \)と置く*8。上の議論により、\( f(m_1), f(m_2), \ldots, f(m_{\varphi(d)}) \)\( D \)の要素を並べた重複のない数列で、かつ\( D \)の要素数\( \varphi(d) \)と等しい長さを持つので、それは\( m_1, m_2, \ldots, m_{\varphi(d)} \)を並び替えたものである。従って、それらを掛け合わせたもの同士の等式\( m_1 m_2 \cdots m_{\varphi(d)} = f(m_1) f(m_2) \cdots f(m_{\varphi(d)}) \)が成り立つ。

この右辺を\( d \)で割った余りは\( (nm_1) (nm_2) \cdots (nm_{\varphi(d)}) = n^{\varphi(d)} m_1 m_2 \cdots m_{\varphi(d)} \)\( d \)で割った余りと等しく*9、従って\( m_1 m_2 \cdots m_{\varphi(d)} \)\( d \)で割った余りは\( n^{\varphi(d)} m_1 m_2 \cdots m_{\varphi(d)} \)\( d \)で割った余りに等しい。

以上より、\( n^{\varphi(d)} m_1 m_2 \cdots m_{\varphi(d)} - m_1 m_2 \cdots m_{\varphi(d)} = (n^{\varphi(d)} - 1)m_1 m_2 \cdots m_{\varphi(d)} \)\( d \)で割り切れる。\( m_1, m_2, \ldots, m_{\varphi(d)} \)がいずれも\( d \)と互いに素であることから、これは\( n^{\varphi(d)} - 1 \)\( d \)で割り切れることに他ならない。

オイラーの定理の証明は何も事前情報がなく眺めると、何故思い付いたのか分からない不思議なものに見えるかもしれません。ですが、この証明は「群論」と呼ばれる分野を学ぶことで、とても自然なものであることが分かります。

例6(オイラーの定理フェルマーの小定理の関係)
\( d \)が素数である時、\( \varphi(d) = d-1 \)である。従ってこの場合のオイラーの定理の主張はフェルマーの小定理の主張そのものである。オイラーの定理の証明はフェルマーの小定理を使っていないため、フェルマーの小定理の別証明を与えたことになる。

それでは、オイラーの定理を用いて有理数に対応する\( p \)進数の特徴付けを証明しましょう。証明はかなり煩雑なので、抽象的な整数の計算に自信がない人は章末問題0/演習8、10、12で具体例を計算して慣れておくと良いです。

(2)ならば(1)であることを示す。そのためには有理数\( r_1 \)\( r_2 \)\( r_1^{(p)} = r_2^{(p)} \)を満たすならば\( r_1 = r_2 \)となることを示せば良い。\( r_1 \)\( r_2 \)は有理数なので、\( qr_1 \)\( qr_2 \)が共に整数となるような\( 0{} \)でない整数\( q \)が存在する。実際、\( r_1 \)\( r_2 \)は整数の分数で表され、その分母の積を\( q \)と置くと、\( q \)\( 0{} \)でない整数でかつ\( qr_1 \)\( qr_2 \)は整数である。\( qr_1 \)が負である時は\( -q \)\( q \)と置き直すことで、\( qr_1 \)が自然数であるとして良い。

有理数の\( p \)進法表記一意存在性を用いた\( r_1^{(p)} \)\( r_2^{(p)} \)の定義から、\( (qr_1)^{(p)} = q^{(p)} r_1^{(p)} = q^{(p)} r_2^{(p)} = (qr_2)^{(p)} \)となる。\( qr_1 \)が自然数であることから、\( qr_2 \)は負でない。実際、もし\( qr_2 \)が負であるならば、\( (-1)^{(p)} \)を用いた負の整数に対応する\( p \)進整数の定義から、

\[ (qr_1 + (-qr_2) )^{(p)} = (qr_1)^{(p)} + (-qr_2)^{(p)} = (qr_1)^{(p)} + (-1)^{(p)} \times (qr_2)^{(p)} = (qr_1)^{(p)} + (-1)^{(p)} \times (qr_1)^{(p)} = 0^{(p)} \]

となり、これは\( qr_1 + (-qr_2) \)が正の自然数であることと\( p \)進法表記を用いた自然数に対応する\( p \)進整数の定義に矛盾する。\( qr_1 \)\( qr_2 \)が自然数でありかつ\( (qr_1)^{(p)} = (qr_2)^{(p)} \)であるので、\( p \)進法表記を用いた自然数に対応する\( p \)進整数の定義から、\( qr_1 = qr_2 \)である。\( q \)\( 0{} \)でなかったので、\( r_1 = q^{-1}qr_1 = q^{-1}qr_2 = r_2 \)である。


(3)ならば(2)であることを示す。\( \alpha \)が循環\( p \)進数であることから、その小数点より左の各桁を並べた数列\( a_0, a_1, a_2, \ldots \)は途中から循環する。その周期の1つ*10\( s \geq 1 \)と置く。即ち、十分大きな自然数\( N \)に対して、\( N \)以上のいかなる自然数\( k \)\( a_{k+s} = a_k \)を満たす。\( p \)進数に\( (p^s)^{(p)} \)を掛けることは小数点を右に\( s \)個ずらすことと等しいので、\( (p^s)^{(p)} \times \alpha \)は小数点より左の\( N+s \)桁目から各桁が\( \alpha \)の同じ桁の数字と一致する。

\( (p^s)^{(p)} \times \alpha \)\( \alpha \)の小数点より左の桁を\( N+s \)桁目から全て\( 0{} \)に置き換えたものをそれぞれ\( \alpha_1 \)\( \alpha_2 \)と置く。\( \alpha_1 \)\( \alpha_2 \)は左右に有限桁の小数であるので、分母が\( p \)の冪乗であるような\( 0{} \)以上の有理数\( r_1 \)\( r_2 \)に対応する。

まず\( r_1 \leq r_2 \)とする。この時\( r_2 - r_1 \)は分母が\( p \)の冪乗であるような\( 0{} \)以上の有理数となるので、\( (r_2 - r_1)^{(p)} \)は左右に有限桁の小数となり、特に小数点より左の\( N+s \)桁目から各桁が\( 0{} \)である。\( \alpha_1 + (r_2 - r_1)^{(p)} = r_1^{(p)} + (r_2 - r_1)^{(p)} = r_2^{(p)} = \alpha_2 \)であることに注意すると、筆算を用いた足し算の定義から、\( (p^v)^{(p)} \times \alpha + (r_2 - r_1)^{(p)} = \alpha \)となる。従って

\begin{eqnarray*} (p^v - 1)^{(p)} \times \alpha = (p^v)^{(p)} \times \alpha + (-1)^{(p)} \times \alpha = (p^v)^{(p)} \times \alpha + (-1)^{(p)} \times ( (p^v)^{(p)} \times \alpha + (r_2 - r_1)^{(p)}) = (r_1 - r_2)^{(p)} \end{eqnarray*}

となるので、\( p \)進数の演算が有理数の演算を拡張していることから、

\[ \alpha = ( (p^v - 1)^{(p)})^{-1} \times (p^v - 1)^{(p)} \times \alpha = ( (p^v - 1)^{(p)})^{-1} \times (r_1 - r_2)^{(p)} = \left( \frac{r_1 - r_2}{p^v - 1} \right)^{(p)} \]

である。すなわち\( \alpha \)\( 0{} \)以下の有理数\( \frac{r_1 - r_2}{p^v - 1} \)に対応する\( p \)進数である。

次に\( r_1 > r_2 \)とする。この時\( r_1 - r_2 \)は分母が\( p \)の冪乗であるような正の有理数となるので、\( (r_1 - r_2)^{(p)} \)は左右に有限桁の小数となり、特に小数点より左の\( N+s \)桁目から各桁が\( 0{} \)である。\( \alpha_2 + (r_1 - r_2)^{(p)} = r_2^{(p)} + (r_1 - r_2)^{(p)} = r_1^{(p)} = \alpha_1 \)であることに注意すると、筆算を用いた足し算の定義から、\( \alpha + (r_1 - r_2)^{(p)} = (p^v)^{(p)} \times \alpha \)となる。従って

\begin{eqnarray*} (p^v - 1)^{(p)} \times \alpha = (p^v)^{(p)} \times \alpha + (-1)^{(p)} \times \alpha = (\alpha + (r_1 - r_2)^{(p)}) + (-1)^{(p)} \times \alpha = (r_1 - r_2)^{(p)} \end{eqnarray*}

となるので、\( p \)進数の演算が有理数の演算を拡張していることから、

\[ \alpha = ( (p^v - 1)^{(p)})^{-1} \times (p^v - 1)^{(p)} \times \alpha = ( (p^v - 1)^{(p)})^{-1} \times (r_1 - r_2)^{(p)} = \left( \frac{r_1 - r_2}{p^v - 1} \right)^{(p)} \]

である。すなわち\( \alpha \)は正の有理数\( \frac{r_1 - r_2}{p^v - 1} \)に対応する\( p \)進数である。


(1)ならば(3)であることを示す。\( \alpha = r^{(p)} \)を満たすような有理数\( r \)が存在すると仮定する。まず準備として、\( r \)が整数の場合を先に考える。\( r \)が自然数ならば、\( r^{(p)} \)は途中の桁から左に\( 0{} \)が循環する\( p \)進整数となる。

\( r \)が負の整数であるとする。正の整数\( -r \)\( n \)と置くと、上の議論から\( n^{(p)} \)は循環\( p \)進数であるような\( p \)進整数となる。各自然数\( k \)に対し\( (-n)^{(p)} \)の一番右から\( k+1 \)桁目を\( a_k \)と置く。\( n \)は正の整数であるので、\( p \)進法表記を用いた自然数に対応する\( p \)進整数の定義から、\( n^{(p)} \neq 0^{(p)} \)である。従って\( a_k \neq 0 \)であるような自然数\( k \)が存在する。そのような\( k \)のうち最小なものを\( v \)と置く。即ち\( v = 0 \)の時は\( a_0 = a_v \neq 0 \)であり、\( v \geq 1 \)の時は\( a_0 = \cdots = a_{v-1} = 0 \)かつ\( a_v \neq 0 \)である。\( 0{} \)から\( p-1 \)までの自然数のみからなる数列\( b_0, b_1, b_2, \ldots \)を次のように定める。

\( 0 \leq k \leq v-1 \)を満たす各自然数\( k \)に対し\( b_k \)\( 0{} \)として定義する。\( b_v \)\( p-a_v \)として定義する。\( k \geq v+1 \)を満たす各自然数\( k \)に対し\( b_k \)\( p-1-a_k \)として定義する。こうして得られた数列\( b_0, b_1, b_2, \ldots \)を並べた\( p \)進整数\( (\cdots b_2 b_1 b_0)_{(p)} \)は、その定義から\( (\cdots b_2 b_1 b_0)_{(p)} + n^{(p)} = 0^{(p)} \)を満たす。従って、\( (-1)^{(p)} \)を用いた負の整数に対応する\( p \)進整数の定義から、\( (\cdots b_2 b_1 b_0)_{(p)} \)\( (-n)^{(p)} \)と一致する。\( n^{(p)} = (\cdots a_2 a_1 a_0)_{(p)} \)が循環\( p \)進数であったことから数列\( a_0, a_1, a_2, \ldots \)は途中から循環し、従ってそれを用いた定義から、数列\( b_0, b_1, b_2, \ldots \)も途中から循環する。すなわち、\( r^{(p)} = (-n)^{(p)} = (\cdots b_2 b_1 b_0)_{(p)} \)もまた循環\( p \)進数である。

\( r \)が一般の有理数の場合を考える。有理数の定義から、\( qr \)が整数となるような正の整数\( q \)が存在する。\( q \)\( p \)で割れる回数を\( v \)回とすると、\( p \)と互いに素な正の整数\( d \)を用いて\( q = p^vd \)と表せる。オイラーの定理から、\( p^{\varphi(d)} - 1 \)\( d \)で割り切れる。従って、\( p^v(p^{\varphi(d)} - 1)r = p^v(p^{\varphi(d)} - 1)q^{-1}qr = p^v(p^{\varphi(d)} - 1)(p^vd)^{-1}qr = \frac{p^{\varphi(d)} - 1}{d} \times qr \)は整数である。従って、上の議論から\( (-p^v(p^{\varphi(d)} - 1)r)^{(p)} \)は循環\( p \)進数であるような\( p \)進整数である。各自然数\( k \)に対し、\( (-p^v(p^{\varphi(d)} - 1)r)^{(p)} \)の一番右から\( k+1 \)桁目を\( a_k \)と置く。上の議論により\( (-p^v(p^{\varphi(d)} - 1)r)^{(p)} = (\cdots a_2 a_1 a_0)_{(p)} \)は循環\( p \)進数をなす。従って数列\( a_0, a_1, a_2, \ldots \)は途中から循環し、その周期の1つを\( s \geq 1 \)と置く。

各自然数\( c \)に対し、\( c \)\( p \)で割った余りを\( f(c) \)と置き、自然数\( \frac{c - f(c)}{p} \)\( g(c) \)と置く。即ち\( f(c) \)\( g(c) \)は共に自然数で\( c = g(c)p + f(c) \)かつ\( 0 \leq f(c) \leq p-1 \)を満たす。自然数からなる数列\( b_0, b_1, b_2, \ldots \)を次の漸化式で定める。

\begin{eqnarray*} \begin{array}{rcll} b_k & = & a_k & (0 \leq k \leq \varphi(d) - 1) \\ b_k & = & a_k + b_{k - \varphi(d)} + g(b_{k - 1}) & (k \geq \varphi(d)) \end{array} \end{eqnarray*}

各自然数\( k \)に対して\( f(b_k) \)\( b'_k \)と置くことで、\( 0{} \)から\( p-1 \)までの自然数からなる数列\( b'_0, b'_1, b'_2, \ldots \)を定義する。

\( p \)進数\( \beta \)\( (\cdots b'_{v+2} b'_{v+1} b'_v.\ b'_{v-1} \cdots b'_2 b'_1 b'_0)_{(p)} \)として定める*11。等式

\[ (p^{\varphi(d) + v})^{(p)} \times \beta + (-p^v(p^{\varphi(d)} - 1)r)^{(p)} = (p^{\varphi(d)})^{(p)} \times (\cdots b'_2 b'_1 b'_0)_{(p)} + (\cdots a_2 a_1 a_0)_{(p)} \]

の右辺を筆算により計算すると、\( \beta \)の定義から、その値は\( (\cdots b'_2 b'_1 b'_0)_{(p)} = (p^v)^{(p)} \times \beta \)となる。従って、

\begin{eqnarray*} & & (p^v(p^{\varphi(d)} - 1) )^{(p)} \times \beta = (p^{\varphi(d) + v})^{(p)} \times \beta + (-1)^{(p)} \times (p^v)^{(p)} \times \beta = (p^{\varphi(d) + v})^{(p)} \times \beta + (-1)^{(p)} \times (p^{\varphi(d) + v})^{(p)} \times \beta + (-p^v(p^{\varphi(d)} - 1)r)^{(p)}) \\ & = & (-1)^{(p)} \times (-p^v(p^{\varphi(d)} - 1)r)^{(p)} = (p^v(p^{\varphi(d)} - 1)r)^{(p)} = (p^v(p^{\varphi(d)} - 1)^{(p)} \times r^{(p)} \end{eqnarray*}

となる。すなわち、\( \beta = ((p^v(p^{\varphi(d)} - 1) )^{(p)})^{-1} \times (p^v(p^{\varphi(d)} - 1) )^{(p)} \times \beta = ((p^v(p^{\varphi(d)} - 1) )^{(p)})^{-1} \times (p^v(p^{\varphi(d)} - 1) )^{(p)} \times r^{(p)} = r^{(p)} = \alpha \)である。以上より、数列\( b'_0, b'_1, b'_2, \ldots \)が途中から循環することを示せば良い。

ここで、\( b_0, b_1, b_2, \ldots \)\( (\varphi(d)+1) \)項間漸化式*12によって与えられる数列であり、かつその定義から、各項の値は\( 0{} \)から\( 2p-1 \)までの自然数である。\( a_0, a_1, a_2, \ldots \)が途中から周期\( s \)で循環する数列であることから、各自然数\( k \)に対して\( s \varphi(d) \)個の数の組\( (b_{ks \varphi(d)}, b_{ks \varphi(d) +1}, \ldots, b_{k(s+1) \varphi(d) - 1}) \)\( v_k \)と置くと、\( k \)が十分大きければ*13ベクトル\( v_{k+1} \)\( k \)によらない式に\( v_k \)を代入したものとして表すことが出来る。従って、十分大きな自然数\( k \)\( k' \)\( v_k = v_{k'} \)を満たすならば、いかなる自然数\( i \)に対しても帰納的に\( v_{k+i} = v_{k'+i} \)が成り立つ。

ベクトルの列\( v_0, v_1, v_2, \ldots \)は各項が\( 0{} \)から\( 2p-1 \)までの自然数\( s \varphi(d) \)個の組という有限種類の値しか取らないため、常に異なる値を取り続けることは出来ない*14。従って、十分大きな自然数\( k \)\( k' \)であって\( k < k' \)かつ\( v_k = v_{k'} \)を満たすものが存在することが分かる。上の議論により、\( v_0, v_1, v_2, \ldots \)は途中から周期\( (k' - k) \)で循環するベクトルの列となる。\( v_0, v_1, v_2, \ldots \)の定義を思い出すと、これは\( b_0, b_1, b_2, \ldots \)が途中から周期\( (k' - k)s \varphi(d) \)で循環することを表す。数列\( b'_0, b'_1, b'_2, \ldots \)は数列\( b_0, b_1, b_2, \ldots \)の各項を\( y = f(x) \)に代入したものであるので、やはり途中から周期\( (k' - k)s \varphi(d) \)で循環する。

以上で「有理数が自然に\( p \)進数とみなせること」と「\( p \)進数が有理数である必要十分条件が循環\( p \)進数であること」を説明できました。自然数、整数、有理数と数を広げて考えていく過程で、最初は簡単だった議論もここまでで相当抽象的になり難しくなったと思います。その理由の1つが、やはり\( p \)進数の定式化として「左に無限桁の小数」という定義を採用したことです。小数として定義してしまえば具体的にイメージしやすいという点では都合が良いのですが文字式での抽象的な議論にあまり向かず、\( p \)進数の具体的な性質を示す際には「群論」や「環論」といった強力な理論を用いる方が楽なので、それらを適用できるように\( p \)進数も「群論」や「環論」の言葉で定式化することが慣例です。そういった定式化の方法は第1章で扱いますので、その際に新たな定義の有用性を堪能して下さい。

さて、次に方程式を考えていきます。実数に二次方程式や微分方程式があったように、\( p \)進数でも同様の概念が存在します。ここではひとまず、一次方程式や二次方程式のような簡単な方程式を考えてみます。

  • \( p \)進数の方程式



*1 もちろん、それはあくまで&mathjax{p};進数を「左に無限桁の小数」として定義しているからであって、後に&mathjax{p};進数を再定義する際にはそのような場合分けが必要なくなります。
*2 例えば&mathjax{\frac{367}{30} = 12.23333333333 \cdots};や&mathjax{\frac{1219}{100} = 12.190000000000 \cdots};が典型例です。
*3 &mathjax{n};が自然数で&mathjax{q};が負の整数であるとした場合を&mathjax{(n,q)};に関する1つの命題として考え、それを&mathjax{n};が負の整数で&mathjax{q};が自然数である場合の&mathjax{(q,n)};に適用していることになります。単に「対称性より」と書きたくなるところですが、どんな概念のどんな対称性を用いたのかを記述していない以上はわずかに主観性を帯びてしまうことが否めず、すこし詳細に書きました。
*4 当たり前な式変形を冗長に行っているようですが、今考えているのは有理数の演算ではなく新しく定義した&mathjax{p};進数の演算ですので、丁寧に計算をしました。
*5 &mathjax{v=0};の場合は&mathjax{0{}};が並ばないという意味です。
*6 例えば&mathjax{p=2};、&mathjax{v=2};、&mathjax{q=88};の時、&mathjax{88 = 1 \times 2^6 + 0 \times 2^5 + 1 \times 2^4 + 1 \times 2^3 + 0 \times 2^2 + 0 \times 2^1 + 0 \times 2^0};より&mathjax{q^{(p)} = 88^{(2)} = 1011000_{(2)}};となり、一番右から&mathjax{v=2};桁なくしたものとは&mathjax{10110_{(2)}};のことです。
*7 負の倍数も認めることにし、&mathjax{d};の正の倍数を足すことは&mathjax{d};の負の倍数を引くこととみなします。
*8 この表記は&mathjax{\varphi(d) \geq 4};であることを課しているように見えますが、慣例上はそうではありません。&mathjax{\varphi(d) = 1};の時は&mathjax{D};が&mathjax{m_1};のみからなる集合で、&mathjax{\varphi(d) = 2};の時は&mathjax{D};が&mathjax{m_1};と&mathjax{m_2};からなる集合で、&mathjax{\varphi(d) = 3};の時は&mathjax{D};が&mathjax{m_1};と&mathjax{m_2};と&mathjax{m_3};からなる集合であることを表します。
*9 何故ならば2つの自然数を掛けた後に&mathjax{d};で割った余りは、元の2つの自然数を&mathjax{d};で割った余り同士を掛け合わせてから更に&mathjax{d};で割った余りと等しいからです。2つでの計算を繰り返すことで、3つ以上の自然数を全て掛けた後に&mathjax{d};で割った余りと、元の3つを&mathjax{d};で割った余り同士を全て掛け合わせてから更に&mathjax{d};で割った余りが等しいことも分かります。
*10 周期の自然数倍も周期として考えています。そのため、循環数列の周期は1つではありません。最小の正の周期は1つですので、最小の正の周期のことを単に周期と呼ぶ流儀もあります。
*11 この表記は&mathjax{v-1 \geq 2};という条件が課されているように見えますが、慣例上はそうではありません。&mathjax{v = 0};の時は&mathjax{(\cdots b'_2 b'_1 b'_0)_{(p)}};を、&mathjax{v = 1};の時は&mathjax{(\cdots b'_3 b'_2 b'_1.\ b'_0)_{(p)}};を、&mathjax{v = 2};の時は&mathjax{(\cdots b'_4 b'_3 b'_2.\ b'_1 b'_0)_{(p)}};を表しています。
*12 &mathjax{b_{k+\varphi(d)}};を&mathjax{b_k, b_{k+1}, \ldots, b_{k + \varphi(d) - 1}};と別の具体的な数列(ここでは&mathjax{a_0, a_1, a_2, \ldots};)によって表す式という意味です。
*13 &mathjax{a_k, a_{k+1}, a_{k+2}, \ldots};が周期&mathjax{s};で循環するくらい大きければ十分です。そのような&mathjax{k};の存在は、&mathjax{s};の定義により分かります。
*14 このような議論を鳩の巣原理と呼びます。