3

mod(合同式)を学んでみよう!(知識編)

334
0
$$$$

導入 (introduction)

ごきげんよう。
まずは、この記事を開いてくださった皆さんに感謝を。
(Mathlogは投稿後にも編集できるので、あとから少しずつ加筆しているかもしれません。)
本記事では、整数問題における強力な武器の一つである合同式(モジュロ演算)について、初学者でも基礎から順に学べるようにまとめます。
今回扱う中心は、合同式の性質とその理由です。
つまり、「どの問題で、どの法を選び、どう使うのか」という実戦的な話よりも、その前提となる理論を丁寧に確認していきます。具体例はいくつか扱いますが、主役はあくまで合同式そのものです。
性質と証明が交互に現れるので、初めからすべての証明を完璧に理解しようとしなくても大丈夫です。
まずは、

  • 何が成り立つのか
  • どの条件が必要なのか
  • 等式と何が同じで、何が違うのか
    をつかんでみてください。
    簡単な性質が「それは当たり前そうだ」と感じられるようになれば、かなり良い状態です。
    学校では合同式を詳しく扱わないこともありますが、整数問題では非常に便利です。ぜひ身につけて、友達に自慢しちゃいましょう!

読み進め方について

この記事は、後半になるにつれて難易度がかなり上がります。

  • 基礎編:第1章~第3章
    初めて合同式を学ぶ人は、まずここまでで十分です。
  • 標準編:第4章~第5.3節
    フェルマーの小定理、位数、原始根まで学びたい人向けです。
  • 最上級編:第5.4節
    原始根が必ず存在することまで、初等的に証明します。かなり難しいので、読み飛ばしてもまったく問題ありません。

目次

  • 第1章 合同式の導入と定義
    • 1.1 合同式がもたらす世界の単純化
    • 1.2 割り算の原理と「互いに素」
    • 1.3 合同式の厳密な定義と負の代表元
  • 第2章 合同式の四則演算と割り算
    • 2.1 和・差・積の保存
    • 2.2 割り算の制限とユークリッドの補題
    • 2.3 逆元の正体
    • 2.4 互いに素でない場合の割り算と法の変化
  • 第3章 多項式と冪乗の剰余
    • 3.1 冪乗と多項式の合同
    • 3.2 平方剰余・立方剰余の観察
  • 第4章 合同式の古典的大定理
    • 4.1 フェルマーの小定理
    • 4.2 オイラーの定理
    • 4.3 ウィルソンの定理
    • 4.4 中国剰余定理
  • 第5章 位数と原始根
    • 5.1 位数の定義
    • 5.2 位数の基本性質
    • 5.3 原始根の定義と一巡性
    • 5.4 原始根の存在証明

第1章 合同式の導入と定義

1.1 合同式がもたらす世界の単純化

例えば、$2^{100}$ の下一桁を求めたいとします。
もちろん、$2$$100$回掛けても求められます。しかし、下一桁だけを知りたいのに、巨大な数そのものを計算するのは大変です。
ここで、下一桁は「$10$で割った余り」によって決まることに注目します。
$2$の累乗を並べ、下一桁だけを見ると、
$$ 2,4,8,6,2,4,8,6,\ldots $$
となり、周期性が見えてきます。
巨大な整数そのものではなく、ある整数で割った余りだけを考える。
合同式は、この考えを等式に近い感覚で扱えるようにする道具です。
ただし、等式とまったく同じではありません。特に割り算には注意が必要です。その違いも含めて、まずは定義から確認していきましょう。


1.2 割り算の原理と「互いに素」

合同式の基盤となる言葉を先に確認します。

割り算の原理

任意の整数 $a$ と正の整数 $m$ に対して、
$$ a=qm+r\qquad (0\leqq r< m) $$
を満たす整数 $q,r$ がただ一通りに定まります。
この $q$ を商、$r$ を余りといいます。

例えば、$17$$6$で割ると
$$ 17=6\cdot2+5 $$
なので、商は$2$、余りは$5$です。
逆に、「整数$a$$m$で割った余りが$r$である」と分かっているなら、ある整数$k$を用いて
$$ a=mk+r $$
と表せます。
偶数を$2k$、奇数を$2k+1$とおくのも、まさにこの考え方です。

約数・倍数・整除記号

整数 $s\ne0$ と整数 $t$ に対して、ある整数 $k$ を用いて
$$ t=sk $$
と表せるとき、$s$$t$約数$t$$s$倍数といいます。
このことを
$$ s\mid t $$
と表します。左側が約数、右側が倍数です。
また、$s$$t$の約数でないことを
$$ s\nmid t $$
と表します。

例えば、$3\mid12$ は正しく、$5\nmid12$ です。

素数・素因数・互いに素
  • 素数とは、正の約数が$1$と自分自身だけである$2$以上の整数です。
  • 素因数とは、ある整数の約数となる素数です。
  • 二つの整数$a,b$の最大公約数が$1$であるとき、$a,b$互いに素であるといいます。
    $a,b$の最大公約数を $\gcd(a,b)$ と表すと、互いに素であることは
    $$ \gcd(a,b)=1 $$
    と表せます。
    これは、$a,b$が共通の素因数を持たないということと同じです。

以下では、「$2$以上の整数は素数の積にただ一通りに分解できる」という素因数分解の基本性質を用います。

次の二数が互いに素か判定してみよう
  • $2$$10$:共通の素因数$2$を持つので、互いに素ではありません。
  • $2$$3$:共通の素因数を持たないので、互いに素です。
  • $3$$10$$3$の素因数は$3$$10$の素因数は$2,5$なので、互いに素です。
  • $6$$10$:共通の素因数$2$を持つので、互いに素ではありません。
  • $10$$21$:素因数はそれぞれ$2,5$$3,7$なので、互いに素です。
    また、$1$はどの整数とも互いに素です。実際、$1$には素因数がないので、他の整数と共通の素因数を持ちません。
    さらに、連続する二つの整数$n,n+1$は必ず互いに素です。
    実際、正の整数$d$$n,n+1$の両方の約数ならば、$d$はその差
    $$ (n+1)-n=1 $$
    の約数でもあります。したがって$d=1$しかなく、最大公約数は$1$です。

1.3 合同式の厳密な定義と負の代表元

まず、「同じ余り」と「差が倍数」が同じ内容であることを確認します。

同じ余りと差の関係

整数$a,b$を正の整数$m$で割った余りが等しいことと、$a-b$$m$の倍数であることは同値です。

証明

$a,b$$m$で割った商と余りをそれぞれ$q_1,r_1$および$q_2,r_2$とすると、
$$ a=q_1m+r_1,\qquad b=q_2m+r_2 $$
と表せます。ただし、$0\leqq r_1,r_2< m$です。
余りが等しく$r_1=r_2$ならば、
$$ a-b=(q_1-q_2)m $$
となるので、$a-b$$m$の倍数です。
逆に、$a-b$$m$の倍数ならば、
$$ a-b=(q_1-q_2)m+(r_1-r_2) $$
より、$r_1-r_2$$m$の倍数です。
一方、
$$ -(m-1)\leqq r_1-r_2\leqq m-1 $$
なので、この範囲にある$m$の倍数は$0$だけです。したがって$r_1=r_2$となります。

合同式の定義

二つの整数$a,b$について、$a-b$が正の整数$m$の倍数であるとき、$a$$b$$m$として合同であるといい、
$$ a\equiv b\pmod m $$
と表します。
すなわち、
$$ a\equiv b\pmod m \iff m\mid(a-b) $$
です。
先ほどの補題より、これは「$a,b$$m$で割った余りが等しい」ということと同じです。

法が$1$の場合は、どの整数同士も合同になります。通常は、意味のある余りの分類が得られる$m\geqq2$の場合を考えます。

■ 具体例

法を$6$とします。
整数を$6$で割った余りは、
$$ 0,1,2,3,4,5 $$
のいずれかです。
$1,7,13$はいずれも$6$で割った余りが$1$なので、
$$ 1\equiv7\equiv13\pmod6 $$
となります。

■ 負の代表元を使う

$5$$6$で割った余りは$5$です。一方、
$$ 5-(-1)=6 $$
$6$の倍数なので、
$$ 5\equiv-1\pmod6 $$
が成り立ちます。
ここで重要なのは、$-1$は「余り」ではないということです。
割り算の原理における余りは、必ず$0\leqq r<6$を満たします。$-1$は、余り$5$と合同な、計算に便利な代表元です。
合同式では、$0,1,\ldots,m-1$だけでなく、それらと合同な負の整数も自由に使えます。「$6$$1$足りない数」を$-1$と表せるのは、合同式の大きな強みです。
また、定義から
$$ a\equiv b\pmod m \iff a-b\equiv0\pmod m $$
も直ちに分かります。


第2章 合同式の四則演算と割り算

2.1 和・差・積の保存

合同式では、足し算・引き算・掛け算を等式とよく似た形で扱えます。

合同式の和・差・積

$$ a\equiv b\pmod m,\qquad c\equiv d\pmod m $$
のとき、次が成り立ちます。
$$ a+c\equiv b+d\pmod m $$
$$ a-c\equiv b-d\pmod m $$
$$ ac\equiv bd\pmod m $$

証明

定義より、ある整数$k,l$を用いて
$$ a-b=km,\qquad c-d=lm $$
と表せます。
したがって、
$$ (a+c)-(b+d)=(a-b)+(c-d)=(k+l)m $$
$$ (a-c)-(b-d)=(a-b)-(c-d)=(k-l)m $$
となるので、和と差の性質が示されます。
また、
$$ ac-bd=c(a-b)+b(c-d)=(ck+bl)m $$
となるので、積の性質も示されます。

特に、合同式の両辺に同じ整数を足したり、引いたり、掛けたりできます。
しかし、両辺を同じ整数で割る操作だけは、いつでもできるわけではありません。


2.2 割り算の制限とユークリッドの補題

まず、失敗例を見てみましょう。
法を$6$とすると、
$$ 2\cdot3=6\equiv0=2\cdot0\pmod6 $$
です。
ところが、両辺を$2$で割ったつもりで
$$ 3\equiv0\pmod6 $$
としてしまうと、これは誤りです。
合同式で法を変えずに割り算をするには、割る数と法が互いに素であることが必要です。その根拠となるのが次の補題です。

ユークリッドの補題

$m\geqq2$とします。$c,m$が互いに素であり、$cn$$m$の倍数ならば、$n$$m$の倍数です。
数式では、
$$ \gcd(c,m)=1,\qquad m\mid cn \implies m\mid n $$
と表せます。

証明

$n=0$ならば結論は明らかです。
$n\ne0$とします。符号は約数・倍数の関係に影響しないので、必要なら絶対値をとり、正の整数の素因数分解を考えます。
$m$を素因数分解して
$$ m=p_1^{e_1}p_2^{e_2}\cdots p_s^{e_s} $$
とします。
$c,m$は互いに素なので、$p_1,p_2,\ldots,p_s$のいずれも$|c|$の素因数ではありません。
一方、$m\mid cn$より、$|cn|$の素因数分解には$p_i^{e_i}$がすべて含まれます。これらは$|c|$には含まれないので、すべて$|n|$に含まれなければなりません。
したがって$m\mid n$です。

合同式の約分

$$ \gcd(c,m)=1 $$
のとき、
$$ ac\equiv bc\pmod m \implies a\equiv b\pmod m $$
が成り立ちます。

証明

$$ ac\equiv bc\pmod m $$
ならば、$c(a-b)$$m$の倍数です。
$c,m$は互いに素なので、ユークリッドの補題より$a-b$$m$の倍数です。したがって、
$$ a\equiv b\pmod m $$
となります。

この互いに素という条件は、法を変えずにいつでも約分するために必要です。
実際、$d=\gcd(c,m)>1$とし、
$$ a=\frac{m}{d},\qquad b=0 $$
とおくと、
$$ c(a-b)=c\cdot\frac{m}{d} =m\cdot\frac{c}{d} $$
$m$の倍数なので、$ac\equiv bc\pmod m$です。
しかし、$0< m/d< m$なので、$a-b=m/d$$m$の倍数ではありません。したがって$a\not\equiv b\pmod m$です。


2.3 逆元の正体

「合同式における割り算」を、もう少し正確に見てみましょう。

逆元

整数$c,u$について、
$$ cu\equiv1\pmod m $$
が成り立つとき、$u$を法$m$における$c$逆元といいます。
逆元を$c^{-1}$と表すことがあります。ただし、この記号の意味は法によって変わるため、必ず法を意識する必要があります。

逆元の存在条件

$m\geqq2$とします。
$c$が法$m$において逆元を持つことと、$c,m$が互いに素であることは同値です。
また、逆元は法$m$においてただ一つです。

証明

まず、$cu\equiv1\pmod m$を満たす整数$u$が存在するとします。
ある整数$k$を用いて
$$ cu-km=1 $$
と表せます。$c,m$の共通の正の約数は$cu$$km$の両方を割るので、その差である$1$も割ります。したがって共通の正の約数は$1$だけであり、$c,m$は互いに素です。
逆に、$c,m$が互いに素であるとします。
$$ c,2c,3c,\ldots,(m-1)c $$
$m$で割った余りを考えます。
もし$1\leqq i< j\leqq m-1$について
$$ ic\equiv jc\pmod m $$
ならば、$c,m$が互いに素なので約分でき、$i\equiv j\pmod m$となります。しかし$0< j-i< m$なので、これは不可能です。
また、$ic\equiv0\pmod m$ならば、同様に約分して$i\equiv0\pmod m$となり、$1\leqq i\leqq m-1$に反します。
したがって、上の$m-1$個の数の余りは、$1,2,\ldots,m-1$を重複なく並べ替えたものです。よって、その中には余りが$1$となるものが必ず存在します。すなわち$c$は逆元を持ちます。
さらに、
$$ cu\equiv cv\equiv1\pmod m $$
ならば、$c,m$が互いに素なので$cu\equiv cv$の両辺を$c$で約分でき、
$$ u\equiv v\pmod m $$
となります。したがって逆元は法$m$においてただ一つです。

■ 具体例

法を$5$とすると、
$$ 2\cdot3=6\equiv1\pmod5 $$
なので、$2$の逆元は$3$です。
このことを
$$ 2^{-1}\equiv3\pmod5 $$
と表せます。
例えば、
$$ 2x\equiv4\pmod5 $$
を解くとき、両辺に$2$の逆元$3$を掛けると、
$$ x\equiv12\equiv2\pmod5 $$
となります。
つまり、合同式における「$2$で割る」は、正確には「$2$の逆元を掛ける」という操作です。
分数$1/2$をそのまま持ち込むのではなく、法の中で掛けると$1$になる整数を使っているわけです。


2.4 互いに素でない場合の割り算と法の変化

割る数と法が互いに素でない場合でも、法を変えれば正確に約分できます。

一般の約分公式

$d=\gcd(c,m)$とすると、
$$ ac\equiv bc\pmod m \iff a\equiv b\pmod{\frac{m}{d}} $$
が成り立ちます。

証明

$$ c=dc_1,\qquad m=dm_1 $$
とおきます。
$c_1,m_1$が互いに素であることを確認します。
もし正の整数$e$$c_1,m_1$の共通の約数ならば、$de$$c,m$の共通の約数です。ところが$d$$c,m$の最大公約数なので、$de\leqq d$です。したがって$e=1$となり、$c_1,m_1$は互いに素です。
さて、
$$ \begin{aligned} ac\equiv bc\pmod m &\iff m\mid c(a-b)\\ &\iff dm_1\mid dc_1(a-b)\\ &\iff m_1\mid c_1(a-b)\\ &\iff m_1\mid(a-b)\\ &\iff a\equiv b\pmod{m_1} \end{aligned} $$
です。
最後から二つ目の同値では、$c_1,m_1$が互いに素であることを用いました。$m_1=1$の場合は両側がともに常に成り立ち、$m_1\geqq2$の場合はユークリッドの補題を使えます。
$m_1=m/d$なので、題意が示されました。

先ほどの
$$ 2\cdot3\equiv2\cdot0\pmod6 $$
では、$d=\gcd(2,6)=2$です。したがって正しく約分すると、
$$ 3\equiv0\pmod3 $$
となります。
式から共通因数を取り除く代わりに、法も最大公約数の分だけ小さくなるわけです。
なお、新しい法が$1$になった場合は、すべての整数が互いに合同なので、結論は自動的に成り立ちます。


第3章 多項式と冪乗の剰余

3.1 冪乗と多項式の合同

積の性質を繰り返し使うと、冪乗について次が得られます。

冪乗の合同

正の整数$n$について、
$$ a\equiv b\pmod m \implies a^n\equiv b^n\pmod m $$
が成り立ちます。

これは、$a\equiv b$$n$回掛け合わせれば分かります。
さらに、各項を足し合わせることで、多項式にも拡張できます。

多項式の合同

すべての係数が整数である多項式
$$ f(x)=c_nx^n+c_{n-1}x^{n-1}+\cdots+c_1x+c_0 $$
について、
$$ a\equiv b\pmod m \implies f(a)\equiv f(b)\pmod m $$
が成り立ちます。

証明

$a\equiv b\pmod m$ならば、各正の整数$k$について$a^k\equiv b^k\pmod m$です。
その両辺に整数$c_k$を掛け、すべて足し合わせれば、
$$ c_na^n+c_{n-1}a^{n-1}+\cdots+c_1a+c_0 \equiv c_nb^n+c_{n-1}b^{n-1}+\cdots+c_1b+c_0 \pmod m $$
となります。これは$f(a)\equiv f(b)\pmod m$を意味します。

この定理により、巨大な数を多項式に代入する場合でも、先にその数を法$m$で小さな代表元に置き換えられます。

■ 最初の例に戻ろう

$2$の累乗の下一桁は、
$$ 2,4,8,6,2,\ldots $$
と変化します。
実際、$2^5\equiv2\pmod{10}$なので、正の整数$n$について両辺に$2^{n-1}$を掛けると、
$$ 2^{n+4}\equiv2^n\pmod{10} $$
となります。これを繰り返し用います。
$100=4+4\cdot24$より、
$$ 2^{100}\equiv2^4\equiv6\pmod{10} $$
です。したがって、$2^{100}$の下一桁は$6$です。


3.2 平方剰余・立方剰余の観察

整数を平方・立方したときに現れる余りには、しばしば強い制限があります。

■ 平方剰余

法を$3$とします。
任意の整数$x$は、$0,1,2$のいずれかと合同なので、
$$ \begin{aligned} x\equiv0&\implies x^2\equiv0,\\ x\equiv1&\implies x^2\equiv1,\\ x\equiv2\equiv-1&\implies x^2\equiv1 \end{aligned} \pmod3 $$
です。
したがって、平方数を$3$で割った余りは$0$または$1$に限られ、$2$にはなりません。
次に、法を$4$とします。
任意の整数$x$
$$ x\equiv0,\pm1,2\pmod4 $$
のいずれかなので、
$$ x^2\equiv0,1,0\pmod4 $$
となります。したがって、平方数を$4$で割った余りも$0$または$1$だけです。
負の代表元を使うと、$1$$3$をそれぞれ調べる代わりに、$\pm1$をまとめて平方できます。
一般に$m\geqq3$ならば、$1$$-1$は法$m$で異なるにもかかわらず、
$$ 1^2\equiv(-1)^2\pmod m $$
です。したがって、平方した結果として現れる余りの種類は、もとの$m$種類より必ず少なくなります。

■ 立方剰余

法を$7$とします。
任意の整数$x$
$$ x\equiv0,\pm1,\pm2,\pm3\pmod7 $$
のいずれかなので、
$$ x^3\equiv0,\pm1,\pm8,\pm27\equiv0,\pm1\pmod7 $$
となります。
したがって、立方数を$7$で割った余りは$0,1,6$、すなわち$0,\pm1$に限られます。
平方の場合の$x$$-x$は同じ平方になりますが、立方では符号が残ります。そのため、立方剰余では平方剰余ほど単純に余りの種類が減るとは限りません。それでも、法をうまく選ぶと強い制限が現れます。
第4章のフェルマーの小定理を学ぶと、法$7$におけるこの現象を別の角度から説明できるようになります。


第4章 合同式の古典的大定理

4.1 フェルマーの小定理

フェルマーの小定理

$p$を素数とし、$a$$p$と互いに素な整数とすると、
$$ a^{p-1}\equiv1\pmod p $$
が成り立ちます。
また、任意の整数$a$について、
$$ a^p\equiv a\pmod p $$
が成り立ちます。

証明

まず、$a$$p$と互いに素である場合を考えます。
$$ a,2a,3a,\ldots,(p-1)a $$
$p$で割った余りは、すべて異なります。
実際、$1\leqq i< j\leqq p-1$について
$$ ia\equiv ja\pmod p $$
と仮定すると、$a,p$は互いに素なので両辺を$a$で約分でき、
$$ i\equiv j\pmod p $$
となります。しかし、$0< j-i< p$なので矛盾です。
また、$ia\equiv0\pmod p$とすると、同様に$i\equiv0\pmod p$となり、$1\leqq i\leqq p-1$に反します。
したがって、これら$p-1$個の数を$p$で割った余りは、$1,2,\ldots,p-1$を重複なく並べ替えたものです。
よって積をとると、
$$ (a)(2a)(3a)\cdots((p-1)a) \equiv 1\cdot2\cdot3\cdots(p-1) \pmod p $$
となります。すなわち、
$$ a^{p-1}(p-1)!\equiv(p-1)!\pmod p $$
です。
$(p-1)!$$p$と互いに素なので約分でき、
$$ a^{p-1}\equiv1\pmod p $$
が得られます。
次に、任意の整数$a$について$a^p\equiv a\pmod p$を示します。
$a$$p$の倍数ならば、両辺はともに$0$と合同です。
$a$$p$の倍数でなければ、$p$は素数なので$a,p$は互いに素です。先ほど示した式の両辺に$a$を掛けて、
$$ a^p\equiv a\pmod p $$
となります。

先ほどの立方剰余を、この定理から見直してみましょう。
$7\nmid x$ならば、フェルマーの小定理より
$$ x^6\equiv1\pmod7 $$
です。したがって、
$$ (x^3-1)(x^3+1)=x^6-1\equiv0\pmod7 $$
となります。
$7$は素数なので、$x^3-1$または$x^3+1$の少なくとも一方が$7$の倍数です。よって、
$$ x^3\equiv\pm1\pmod7 $$
と分かります。


4.2 オイラーの定理

フェルマーの小定理を一般の法に拡張したものが、オイラーの定理です。

オイラーの関数

$1$以上$m$以下の整数のうち、$m$と互いに素なものの個数を$\phi(m)$と表します。
これをオイラーの$\phi$関数、またはオイラーのトーシェント関数といいます。
例えば、$1$以上$6$以下で$6$と互いに素な整数は$1,5$の二つなので、
$$ \phi(6)=2 $$
です。
また、$\phi(1)=1$とします。

オイラーの定理

$m\geqq2$とし、$a,m$が互いに素であるとき、
$$ a^{\phi(m)}\equiv1\pmod m $$
が成り立ちます。

証明

$1$以上$m$以下の整数のうち、$m$と互いに素なものを
$$ r_1,r_2,\ldots,r_{\phi(m)} $$
とします。
$a$$m$と互いに素なので、$ar_i$$m$と互いに素です。実際、$m$の素因数が$ar_i$を割るならば、その素因数は$a$または$r_i$を割ることになり、いずれの場合も互いに素であることに反します。
また、
$$ ar_i\equiv ar_j\pmod m $$
ならば、$a,m$が互いに素なので約分でき、$r_i\equiv r_j\pmod m$となります。したがって、$ar_1,ar_2,\ldots,ar_{\phi(m)}$の余りはすべて異なります。
よって、これらの余りは$r_1,r_2,\ldots,r_{\phi(m)}$を並べ替えたものです。積をとると、
$$ a^{\phi(m)}r_1r_2\cdots r_{\phi(m)} \equiv r_1r_2\cdots r_{\phi(m)} \pmod m $$
となります。
$r_1r_2\cdots r_{\phi(m)}$$m$と互いに素なので約分でき、
$$ a^{\phi(m)}\equiv1\pmod m $$
が得られます。

$p$が素数ならば、$1,2,\ldots,p-1$はすべて$p$と互いに素なので、
$$ \phi(p)=p-1 $$
です。したがって、オイラーの定理はフェルマーの小定理を含んでいます。


4.3 ウィルソンの定理

ウィルソンの定理

整数$n>1$について、$n$が素数であることと、
$$ (n-1)!\equiv-1\pmod n $$
が成り立つことは同値です。

証明

まず、$n=p$が素数であるとします。
$1,2,\ldots,p-1$の各整数は$p$と互いに素なので、法$p$において逆元を持ちます。
ある整数$x$が自分自身の逆元であるための条件は、
$$ x^2\equiv1\pmod p $$
です。このとき、
$$ (x-1)(x+1)\equiv0\pmod p $$
となります。$p$は素数なので、
$$ x\equiv1\pmod p \quad\text{または}\quad x\equiv-1\pmod p $$
です。
$p$が奇素数ならば、$1$$p-1$以外の整数は、互いに異なる逆元同士の組に分けられます。各組の積は$1$と合同なので、
$$ (p-1)!\equiv1\cdot(p-1)\equiv-1\pmod p $$
となります。
$p=2$のときも、
$$ 1!\equiv1\equiv-1\pmod2 $$
なので成立します。
逆に、$n>1$が合成数であるとします。
$n=4$ならば、
$$ 3!=6\equiv2\not\equiv-1\pmod4 $$
です。
$n>4$ならば、$n=ab$を満たす整数$1< a\leqq b< n$が存在します。
$a< b$ならば、$(n-1)!$の中に$a,b$がともに含まれるので、$n=ab$$(n-1)!$の約数です。
$a=b$ならば$n=a^2$であり、$n>4$より$a\geqq3$です。このとき
$$ 2a\leqq a^2-1=n-1 $$
なので、$a,2a$はともに$1$以上$n-1$以下であり、
$$ a\cdot2a=2n $$
なので、やはり$n$$(n-1)!$の約数です。
したがって、合成数$n>4$については
$$ (n-1)!\equiv0\not\equiv-1\pmod n $$
です。
以上より、同値が示されました。


4.4 中国剰余定理

中国剰余定理

互いに素な整数$m,n\geqq2$と任意の整数$a,b$について、連立合同式
$$ \begin{cases} x\equiv a\pmod m,\\ x\equiv b\pmod n \end{cases} $$
は、$mn$を法としてただ一つの解を持ちます。

証明

$m,n$は互いに素なので、$m$は法$n$において逆元を持ちます。その逆元を$u$とすると、
$$ mu\equiv1\pmod n $$
です。
ここで、
$$ x=a+mu(b-a) $$
とおきます。
$m$では$mu(b-a)\equiv0$なので、
$$ x\equiv a\pmod m $$
です。
また、法$n$では$mu\equiv1$なので、
$$ x\equiv a+(b-a)=b\pmod n $$
です。したがって解は少なくとも一つ存在します。
次に、$x,y$がともにこの連立合同式の解であるとします。
すると$x-y$$m$の倍数かつ$n$の倍数です。ある整数$k$を用いて$x-y=mk$とおくと、$n\mid mk$です。
$m,n$は互いに素なので、ユークリッドの補題より$n\mid k$です。したがって、$x-y$$mn$の倍数となり、
$$ x\equiv y\pmod{mn} $$
です。
よって解は$mn$を法としてただ一つです。

「解が一つ」とは、整数解そのものが一個しかないという意味ではありません。一つの解を$x_0$とすると、すべての整数解は
$$ x=x_0+kmn\qquad(k\text{は整数}) $$
と表され、それらが法$mn$で一つの合同類をつくるという意味です。


第5章 位数と原始根

ここからは発展的な内容です。
合同式における冪乗の周期を、より正確に捉えていきます。

5.1 位数の定義

$m\geqq2$とし、$a,m$が互いに素であるとします。
オイラーの定理より、
$$ a^{\phi(m)}\equiv1\pmod m $$
なので、$a^n\equiv1\pmod m$となる正の整数$n$は少なくとも一つ存在します。

位数

$$ a^d\equiv1\pmod m $$
を満たす最小の正の整数$d$を、法$m$における$a$位数といい、
$$ \operatorname{ord}_m(a)=d $$
と表します。

$a,m$が互いに素でなければ、位数は定義できません。
実際、$g=\gcd(a,m)>1$とします。もし$a^d\equiv1\pmod m$ならば、ある整数$k$を用いて
$$ a^d-km=1 $$
と表せます。しかし左辺の二つの項はともに$g$の倍数なので、$1$$g$の倍数となり矛盾です。


5.2 位数の基本性質

位数と指数の倍数関係

$$ \operatorname{ord}_m(a)=d $$
とすると、任意の正の整数$n$について、
$$ a^n\equiv1\pmod m \iff d\mid n $$
が成り立ちます。

証明

まず$d\mid n$ならば、ある正の整数$k$を用いて$n=dk$と表せます。したがって、
$$ a^n=(a^d)^k\equiv1^k\equiv1\pmod m $$
です。
逆に、$a^n\equiv1\pmod m$とします。
$n$$d$で割った商を$q$、余りを$r$とすると、
$$ n=qd+r\qquad(0\leqq r< d) $$
と表せます。
よって、
$$ a^n=(a^d)^qa^r\equiv a^r\pmod m $$
です。$a^n\equiv1$なので、$a^r\equiv1\pmod m$となります。
もし$r>0$ならば、$d$より小さい正の整数$r$について$a^r\equiv1$となり、$d$の最小性に反します。したがって$r=0$です。
よって$d\mid n$となります。

オイラーの定理より$a^{\phi(m)}\equiv1\pmod m$なので、直ちに
$$ \operatorname{ord}_m(a)\mid\phi(m) $$
が得られます。

位数までの累乗はすべて異なる

$$ \operatorname{ord}_m(a)=d $$
ならば、
$$ a,a^2,\ldots,a^d $$
は法$m$においてすべて異なります。

証明

$1\leqq i< j\leqq d$について$a^i\equiv a^j\pmod m$と仮定します。
$a,m$は互いに素なので$a^i$$m$と互いに素です。したがって両辺を$a^i$で約分でき、
$$ a^{j-i}\equiv1\pmod m $$
となります。
しかし、$1\leqq j-i< d$なので、これは位数$d$の最小性に反します。

累乗した数の位数

$$ \operatorname{ord}_m(a)=d $$
とし、$k$を正の整数とすると、
$$ \operatorname{ord}_m(a^k) = \frac{d}{\gcd(k,d)} $$
が成り立ちます。

証明

$a^k$$m$と互いに素なので、その位数は定義できます。
$h=\gcd(k,d)$とし、
$$ k=hu,\qquad d=hv $$
とおきます。このとき$u,v$は互いに素です。
まず、
$$ (a^k)^v=a^{huv}=a^{ud}=(a^d)^u\equiv1\pmod m $$
です。
一方、正の整数$t$について$(a^k)^t\equiv1\pmod m$とすると、$a^{kt}\equiv1\pmod m$です。
先ほどの定理より$d\mid kt$なので、
$$ hv\mid hut $$
すなわち$v\mid ut$です。
$u,v$は互いに素なので、ユークリッドの補題より$v\mid t$となります。
したがって、$(a^k)^t\equiv1$となる正の整数$t$の最小値は$v$です。よって、
$$ \operatorname{ord}_m(a^k)=v =\frac{d}{\gcd(k,d)} $$
となります。


5.3 原始根の定義と一巡性

ここからは法を素数$p$に限定します。
$p$の倍数でない整数の位数は$p-1$の約数なので、位数として最大になり得る値は$p-1$です。

原始根

$p$を素数とします。
$1\leqq r< p$であり、
$$ \operatorname{ord}_p(r)=p-1 $$
を満たす整数$r$を、法$p$における原始根といいます。
特に$p\geqq3$の場合、これは
$$ r^j\not\equiv1\pmod p \qquad(1\leqq j\leqq p-2) $$
であり、かつ
$$ r^{p-1}\equiv1\pmod p $$
です。
$2$では$1$を原始根とします。

原始根の一巡性

$r$が法$p$における原始根ならば、
$$ r,r^2,\ldots,r^{p-1} $$
$p$で割った余りはすべて異なり、$1,2,\ldots,p-1$を重複なく一巡します。

証明

$r$の位数は$p-1$なので、5.2節の補題より
$$ r,r^2,\ldots,r^{p-1} $$
は法$p$においてすべて異なります。
また、$r$$p$と互いに素なので、どの累乗も$p$の倍数ではありません。
したがって、これら$p-1$個の余りは、$p$の倍数でない$p-1$種類の余り
$$ 1,2,\ldots,p-1 $$
を重複なく並べ替えたものです。

■ 具体例:法$7$

$7$における$2$$3$の累乗を比べます。

$x$$x^1$$x^2$$x^3$$x^4$$x^5$$x^6$$\operatorname{ord}_7(x)$
$2$$2$$4$$1$$2$$4$$1$$3$
$3$$3$$2$$6$$4$$5$$1$$6$

$2$$3$乗ですでに$1$へ戻るので、位数は$3$です。
一方、$3$の位数は$6=p-1$なので、$3$は法$7$における原始根です。実際、
$$ 3,2,6,4,5,1 $$
と、$1$から$6$までの余りをすべて一巡しています。


5.4 原始根の存在証明

ここからは最上級編です。
前節では原始根を「位数が$p-1$である数」と定義しました。しかし、そもそもそのような数が本当にすべての素数$p$に対して存在するのでしょうか。
この節では、多項式合同式の解の個数とオイラー関数の数え上げを組み合わせて、原始根の存在と個数を証明します。

5.4.1 多項式合同式の解の個数
ラグランジュの定理

$p$を素数とし、$n$を正の整数とします。
整数係数$n$次多項式
$$ f(x)=c_nx^n+c_{n-1}x^{n-1}+\cdots+c_1x+c_0 $$
について、$c_n\not\equiv0\pmod p$とします。
このとき、合同方程式
$$ f(x)\equiv0\pmod p $$
の解は、法$p$において高々$n$個です。

証明

次数$n$に関する数学的帰納法で示します。
まず$n=1$とします。
$$ c_1x+c_0\equiv0\pmod p $$
において、$c_1\not\equiv0\pmod p$です。$p$は素数なので$c_1,p$は互いに素であり、$c_1$は逆元を持ちます。
したがって、
$$ x\equiv-c_0c_1^{-1}\pmod p $$
となり、解は高々一個です。
次に、$k$次多項式について定理が成り立つと仮定し、$(k+1)$次多項式$f(x)$を考えます。
$f(x)\equiv0\pmod p$が解を一つも持たない場合、主張は明らかです。
そこで、解を少なくとも一つ持つとし、その一つの代表元を$\alpha$として、$x\equiv\alpha\pmod p$とします。
多項式$f(x)-f(\alpha)$$x=\alpha$を整数としての解に持つので、因数定理より、整数係数$k$次多項式$q(x)$を用いて
$$ f(x)-f(\alpha)=(x-\alpha)q(x) $$
と表せます。
$q(x)$の最高次の係数は$f(x)$の最高次の係数と同じなので、$p$の倍数ではありません。したがって、$q(x)$には帰納法の仮定を適用できます。
$f(\alpha)\equiv0\pmod p$なので、
$$ f(x)\equiv(x-\alpha)q(x)\pmod p $$
です。
ここで、$\beta\not\equiv\alpha\pmod p$$f(x)\equiv0\pmod p$の別の解とすると、
$$ 0\equiv f(\beta) \equiv(\beta-\alpha)q(\beta) \pmod p $$
となります。
$\beta-\alpha\not\equiv0\pmod p$であり、$p$は素数なので、両辺を$\beta-\alpha$で約分できます。よって、
$$ q(\beta)\equiv0\pmod p $$
です。
したがって、$\alpha$以外の$f(x)\equiv0$の解は、すべて$k$次合同方程式$q(x)\equiv0$の解です。
帰納法の仮定より、$q(x)\equiv0$の解は高々$k$個なので、$f(x)\equiv0$の解は$\alpha$を合わせても高々$k+1$個です。
以上より、任意の正の整数$n$について定理が成り立ちます。

法が合成数の場合、この定理は一般には成り立ちません。
例えば、
$$ x^2\equiv1\pmod8 $$
の解は
$$ x\equiv1,3,5,7\pmod8 $$
の四個あります。
これは、法$8$では
$$ 2\cdot4\equiv0\pmod8 $$
であるにもかかわらず、$2,4$のどちらも$0$と合同ではないからです。
素数を法とするときには、「積が$0$と合同ならば少なくとも一方が$0$と合同」という性質が成り立つため、多項式の解の個数を次数以下に抑えられます。

5.4.2 オイラー関数の約数和
オイラー関数の約数和

任意の正の整数$n$について、
$$ \sum_{d\mid n}\phi(d)=n $$
が成り立ちます。

証明

$1,2,\ldots,n$を、$n$との最大公約数によって分類します。
$e$$n$の正の約数とし、
$$ \gcd(k,n)=e $$
を満たす$1\leqq k\leqq n$の個数を考えます。
$k=et$$n=ed$とおくと、
$$ \gcd(k,n)=e \iff \gcd(t,d)=1 $$
です。
また、$1\leqq k\leqq n$$1\leqq t\leqq d$と同値です。したがって、このような$k$の個数は$\phi(d)$個です。
$e$$n$のすべての約数を動くとき、$d=n/e$$n$のすべての約数を動きます。
よって、$1,2,\ldots,n$$n$個の整数をすべて数えると、
$$ \sum_{d\mid n}\phi(d)=n $$
となります。

例えば$n=6$ならば、約数は$1,2,3,6$なので、
$$ \phi(1)+\phi(2)+\phi(3)+\phi(6) =1+1+2+2=6 $$
です。

5.4.3 位数ごとの個数
位数の個数定理

$p$を素数とし、$d$$p-1$の正の約数とします。
$1$以上$p-1$以下の整数のうち、法$p$における位数が$d$であるものの個数を$N(d)$とすると、
$$ N(d)=0 \quad\text{または}\quad N(d)=\phi(d) $$
です。

証明

位数$d$の整数が存在しなければ$N(d)=0$なので、主張は成り立ちます。
そこで、位数$d$の整数$a$が少なくとも一つ存在するとします。
5.2節の補題より、
$$ a,a^2,\ldots,a^d $$
は法$p$においてすべて異なります。
また、$1\leqq k\leqq d$について、
$$ (a^k)^d=(a^d)^k\equiv1\pmod p $$
なので、これら$d$個の整数はすべて合同方程式
$$ x^d-1\equiv0\pmod p $$
の解です。
ラグランジュの定理より、この$d$次合同方程式の解は高々$d$個です。すでに異なる$d$個の解が見つかっているので、解はちょうど
$$ a,a^2,\ldots,a^d $$
だけです。
位数が$d$である任意の整数は$x^d\equiv1\pmod p$を満たすので、必ずこの中にあります。
5.2節で示した累乗の位数の公式より、
$$ \operatorname{ord}_p(a^k) = \frac{d}{\gcd(k,d)} $$
です。
これが$d$に等しいことと、$\gcd(k,d)=1$であることは同値です。
$1\leqq k\leqq d$のうち$d$と互いに素な整数は、$\phi(d)$個あります。
したがって、位数$d$の整数が一つでも存在するならば、
$$ N(d)=\phi(d) $$
です。

5.4.4 原始根の存在と個数

いよいよ最後です。

原始根の存在定理

任意の素数$p$に対して、法$p$における原始根は必ず存在します。
さらに、その個数は
$$ \phi(p-1) $$
個です。

証明

$1,2,\ldots,p-1$の各整数$a$について、フェルマーの小定理より
$$ a^{p-1}\equiv1\pmod p $$
です。
したがって、5.2節の定理より、$a$の位数は必ず$p-1$の約数です。
よって、$p-1$のすべての正の約数$d$について、位数$d$の整数の個数$N(d)$を足すと、
$$ \sum_{d\mid(p-1)}N(d)=p-1 $$
となります。
一方、オイラー関数の約数和より、
$$ \sum_{d\mid(p-1)}\phi(d)=p-1 $$
です。
位数の個数定理より、各$d$について
$$ N(d)=0 \quad\text{または}\quad N(d)=\phi(d) $$
です。
もし、ある約数$d$について$N(d)=0$ならば、$\phi(d)\geqq1$なので、
$$ \sum_{d\mid(p-1)}N(d) < \sum_{d\mid(p-1)}\phi(d) $$
となってしまいます。しかし、両方の和は$p-1$に等しいので矛盾です。
したがって、すべての$d\mid(p-1)$について
$$ N(d)=\phi(d) $$
です。
特に$d=p-1$とすると、位数$p-1$の整数、すなわち原始根の個数は
$$ N(p-1)=\phi(p-1) $$
です。
$\phi(p-1)\geqq1$なので、原始根は必ず存在します。

これで、合同式の定義から始まり、原始根の存在までが一本の論理としてつながりました。

結び(次回予告)

今回は、合同式の定義から四則演算、逆元、冪乗の剰余、フェルマーの小定理、位数、原始根までを扱いました。
すべてを一度に覚える必要はありません。
まずは、
$$ a\equiv b\pmod m \iff a-b\text{が}m\text{の倍数} $$
という定義と、和・差・積は自由に扱える一方、割り算には互いに素という条件が必要であることを押さえてみてください。
そこから先の定理は、必要になったときに戻って確認すれば大丈夫です。
次回の【活用編】では、

  • どの法を選べばよいのか
  • 平方剰余や立方剰余をどう使うのか
  • 素数条件や整数方程式を合同式でどう絞り込むのか
    といった、実際の問題における考え方を扱う予定です。たぶん。
    みなさまの日常に良き数学の彩りのあらんことを。
    それでは、ごきげんよう。
投稿日:711
更新日:19日前
数学の力で現場を変える アルゴリズムエンジニア募集 - Mathlog served by OptHub

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

bloom
bloom
129
12659

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中