0. 結論を先に:平方剰余の相互法則とは何か
平方剰余の相互法則は、「奇素数 \(p,q\) に対して、\(q\) が \(p\) を法として平方数かどうか」と 「\(p\) が \(q\) を法として平方数かどうか」の間にある、驚くほど単純な関係を述べる定理です。
\(p,q\) を相異なる奇素数とする。このとき \[ \Leg{p}{q}\Leg{q}{p} =(-1)^{\frac{p-1}{2}\frac{q-1}{2}} =(-1)^{\frac{(p-1)(q-1)}{4}}. \] したがって、次が成り立つ。
| 場合 | 結論 |
|---|---|
| \(p\equiv 1\pmod 4\) または \(q\equiv 1\pmod 4\) | \(\Leg{p}{q}=\Leg{q}{p}\) |
| \(p\equiv q\equiv 3\pmod 4\) | \(\Leg{p}{q}=-\Leg{q}{p}\) |
相互法則と一緒に使う基本公式は次の二つです。 \[ \Leg{-1}{p}=(-1)^{\frac{p-1}{2}} = \begin{cases} 1 & (p\equiv 1\pmod 4),\\ -1 & (p\equiv 3\pmod 4), \end{cases} \] \[ \Leg{2}{p}=(-1)^{\frac{p^2-1}{8}} = \begin{cases} 1 & (p\equiv \pm1\pmod 8),\\ -1 & (p\equiv \pm3\pmod 8). \end{cases} \]
ここで \(\Leg{a}{p}\) は Legendre 記号です。値は \(0,1,-1\) のいずれかで、 \(a\) が \(p\) の倍数なら \(0\)、\(a\) が \(p\) を法として非零平方数なら \(1\)、 非零平方数でなければ \(-1\) です。以下で、この定義から定理の証明まで順番に組み立てます。
1. 合同式と有限体:土台を省略せずに確認する
整数 \(a,b\) と正整数 \(m\) について、 \[ a\equiv b\pmod m \] とは、\(m\mid(a-b)\)、すなわち \(a-b\) が \(m\) の倍数であることを意味します。 例えば \(17\equiv 5\pmod{12}\) は、\(17-5=12\) が \(12\) の倍数だから正しいです。
合同式では、整数を「\(m\) で割った余り」だけで見ます。同じ余りを持つ整数全体を一つの同値類とみなし、 その集合を \(\Z/m\Z\) と書きます。\(m=p\) が素数のとき、\(\Z/p\Z\) は体になります。 これは割り算、すなわち非零元による逆元が存在するからです。
補題 1:\(p\) が素数なら \(\Z/p\Z\) は体である
\(p\) を素数とし、\(a\not\equiv 0\pmod p\) とする。このとき \(p\nmid a\) なので \(\gcd(a,p)=1\) です。Euclid の互除法から Bézout の等式が成り立ち、ある整数 \(u,v\) が存在して \[ au+pv=1 \] となります。両辺を \(p\) で見れば \[ au\equiv 1\pmod p \] です。したがって \(u\) は \(a\) の逆元です。非零元すべてに逆元があるので、\(\Z/p\Z\) は体です。
補題 2:体上の次数 \(d\) の非零多項式は高々 \(d\) 個の根しか持たない
体を \(K\) とし、非零多項式 \(f(X)\in K[X]\) の次数を \(d\) とします。 \(\alpha\in K\) が根、つまり \(f(\alpha)=0\) なら、因数定理により \[ f(X)=(X-\alpha)g(X) \] と書けます。このとき \(\deg g=d-1\) です。 根が \(r\) 個あるとして、相異なる根 \(\alpha_1,\ldots,\alpha_r\) を一つずつ取り出すと、 \[ f(X)=(X-\alpha_1)(X-\alpha_2)\cdots(X-\alpha_r)h(X) \] となります。右辺の次数は少なくとも \(r\) なので、\(r\le d\) です。
補題 3:Fermat の小定理
\(p\) を素数、\(a\) を \(p\nmid a\) を満たす整数とすると、 \[ a^{p-1}\equiv 1\pmod p. \]
\(1,2,\ldots,p-1\) を \(a\) 倍した数 \[ a,2a,3a,\ldots,(p-1)a \] を \(p\) を法として考えます。もし \(ia\equiv ja\pmod p\) なら \[ a(i-j)\equiv 0\pmod p. \] \(p\nmid a\) なので \(a\) は逆元を持ち、両辺に \(a^{-1}\) を掛けて \[ i-j\equiv 0\pmod p \] です。しかし \(1\le i,j\le p-1\) だから、これは \(i=j\) を意味します。 したがって \(a,2a,\ldots,(p-1)a\) の剰余は、\(1,2,\ldots,p-1\) の順序を並べ替えたものです。 よって積を取ると \[ a\cdot 2a\cdot 3a\cdots (p-1)a \equiv 1\cdot 2\cdot 3\cdots (p-1) \pmod p. \] 左辺は \(a^{p-1}(p-1)!\) なので、 \[ a^{p-1}(p-1)!\equiv (p-1)!\pmod p. \] \((p-1)!\) は \(p\) で割れないため逆元を持ち、両辺からキャンセルして \[ a^{p-1}\equiv 1\pmod p. \]
2. 平方剰余と Legendre 記号
\(p\) を奇素数とします。整数 \(a\) について、合同方程式 \[ x^2\equiv a\pmod p \] が解を持つとき、\(a\) は \(p\) を法として平方剰余であるといいます。 さらに \(p\nmid a\) で解を持たないとき、\(a\) は平方非剰余です。 \(a\equiv 0\pmod p\) は \(x=0\) により平方ですが、Legendre 記号では別扱いして値 \(0\) を与えます。
\(p\) を奇素数、\(a\in\Z\) とする。Legendre 記号 \(\Leg{a}{p}\) を \[ \Leg{a}{p}= \begin{cases} 0 & (p\mid a),\\ 1 & (p\nmid a \text{ かつ } x^2\equiv a\pmod p \text{ が解を持つ}),\\ -1 & (p\nmid a \text{ かつ } x^2\equiv a\pmod p \text{ が解を持たない}) \end{cases} \] と定義します。
非零平方剰余はちょうど \((p-1)/2\) 個ある
\(\F{p}^{\times}=\{1,2,\ldots,p-1\}\) を \(p\) を法とした非零剰余類の集合とします。 写像 \[ \varphi:\F{p}^{\times}\to \F{p}^{\times},\qquad x\mapsto x^2 \] を考えます。\(x^2=y^2\) なら \[ x^2-y^2=(x-y)(x+y)\equiv 0\pmod p. \] \(\F{p}\) は体なので積が \(0\) なら一方が \(0\) です。したがって \[ x-y\equiv 0\pmod p \quad\text{または}\quad x+y\equiv 0\pmod p, \] すなわち \[ x\equiv y\pmod p \quad\text{または}\quad x\equiv -y\pmod p. \] \(p\) は奇素数なので \(y\not\equiv -y\pmod p\) です。なぜなら \(y\equiv -y\) なら \(2y\equiv0\)、\(2\) は逆元を持つので \(y\equiv0\) となり、非零性に反するからです。 よって各非零平方剰余は、ちょうど二つの平方根 \(x\) と \(-x\) から生じます。 \(\F{p}^{\times}\) の元は \(p-1\) 個で、二つずつ同じ平方に写るので、像の大きさは \[ \frac{p-1}{2} \] です。これが非零平方剰余の個数です。
\(1^2,2^2,3^2,4^2,5^2\) を \(11\) で割った余りは \[ 1,4,9,5,3 \] です。したがって非零平方剰余は \(\{1,3,4,5,9\}\)、平方非剰余は \(\{2,6,7,8,10\}\) です。個数はどちらも \((11-1)/2=5\) です。
3. Euler 判定法と Legendre 記号の積性
\(p\) を奇素数とする。任意の整数 \(a\) について \[ \Leg{a}{p}\equiv a^{\frac{p-1}{2}}\pmod p \] が成り立ちます。特に \(p\nmid a\) のとき、右辺は \(1\) または \(-1\) に合同であり、 \[ a^{\frac{p-1}{2}}\equiv \begin{cases} 1\pmod p & (a \text{ が平方剰余}),\\ -1\pmod p & (a \text{ が平方非剰余}) \end{cases} \] です。
Euler 判定法の証明
まず \(p\mid a\) の場合、\(a^{(p-1)/2}\equiv0\pmod p\) であり、定義より \(\Leg{a}{p}=0\) なので成立します。以下 \(p\nmid a\) とします。
\(m=(p-1)/2\) とおきます。\(a\) が平方剰余なら、ある \(b\not\equiv0\pmod p\) が存在して \[ a\equiv b^2\pmod p \] です。したがって Fermat の小定理より \[ a^m\equiv (b^2)^m=b^{2m}=b^{p-1}\equiv1\pmod p. \]
次に、非零平方剰余はちょうど \(m\) 個あり、それらはすべて多項式 \[ X^m-1 \] の根です。次数は \(m\) ですから、体 \(\F{p}\) 上の根は高々 \(m\) 個です。 よって \(X^m-1\) の根は、非零平方剰余だけです。 したがって \(a\) が平方非剰余なら \[ a^m\not\equiv 1\pmod p. \]
一方 Fermat の小定理から \[ a^{p-1}=a^{2m}\equiv1\pmod p \] です。つまり \(y=a^m\) とおくと \[ y^2\equiv1\pmod p, \] すなわち \[ (y-1)(y+1)\equiv0\pmod p. \] \(\F{p}\) は体なので \(y\equiv1\) または \(y\equiv-1\) です。 非剰余の場合は \(y\not\equiv1\) なので \[ a^m\equiv -1\pmod p. \] これで Euler 判定法が示されました。
\(p\) を奇素数とすると、任意の整数 \(a,b\) について \[ \Leg{ab}{p}=\Leg{a}{p}\Leg{b}{p} \] が成り立ちます。
積性の証明
\(p\mid a\) または \(p\mid b\) のときは、両辺とも \(0\) なので成立します。 以下 \(p\nmid a,b\) とします。Euler 判定法により \[ \Leg{ab}{p}\equiv (ab)^{\frac{p-1}{2} } =a^{\frac{p-1}{2}}b^{\frac{p-1}{2}} \equiv \Leg{a}{p}\Leg{b}{p} \pmod p. \] 両辺は \(1\) または \(-1\) です。奇素数 \(p\) について \(1\not\equiv -1\pmod p\) なので、 合同であることは整数として等しいことを意味します。したがって \[ \Leg{ab}{p}=\Leg{a}{p}\Leg{b}{p}. \]
積性により、\(a\) を素因数分解して、各素因子について Legendre 記号を計算すればよいことになります。 しかし分母側の素数 \(p\) に対して分子が大きいとき、直接平方表を作るのは非効率です。 ここで相互法則が威力を発揮します。
4. Gauss の補題:相互法則の核心にある符号計算
Gauss の補題は、\(a\) が \(p\) を法として平方剰余かどうかを、\(a,2a,\ldots,ma\) の余りが 「下半分」に入るか「上半分」に入るかで判定します。ここで \(m=(p-1)/2\) です。
\(p\) を奇素数、\(a\) を \(p\nmid a\) を満たす整数とし、\(m=(p-1)/2\) とおく。 各 \(k=1,2,\ldots,m\) について、\(ak\) の \(p\) を法とする最小正剰余を \(r_k\) とする。 つまり \[ 1\le r_k\le p-1, \qquad ak\equiv r_k\pmod p. \] \(r_k>p/2\) となる \(k\) の個数を \(n\) とすると、 \[ \Leg{a}{p}=(-1)^n. \]
Gauss の補題の証明
\(m=(p-1)/2\) とおきます。各 \(r_k\) に対して、\(r_k\le m\) なら \(b_k=r_k\)、 \(r_k>m\) なら \(b_k=p-r_k\) と定めます。\(p\) は奇数なので \(p/2=m+1/2\) であり、 \(r_k>p/2\) は整数条件では \(r_k\ge m+1\) と同じです。 したがって常に \[ 1\le b_k\le m \] です。また符号 \(\varepsilon_k\) を \[ \varepsilon_k= \begin{cases} 1 & (r_k\le m),\\ -1 & (r_k>m) \end{cases} \] とおけば \[ ak\equiv r_k\equiv \varepsilon_k b_k\pmod p \] です。
次に、\(b_1,b_2,\ldots,b_m\) は \(1,2,\ldots,m\) の並べ替えであることを示します。 もし \(b_i=b_j\) なら、\(r_i\) と \(r_j\) は符号まで同じなので \[ ai\equiv aj\pmod p \quad\text{または}\quad ai\equiv -aj\pmod p \] が成り立ちます。前者なら \[ a(i-j)\equiv0\pmod p. \] \(p\nmid a\) なので \(i-j\equiv0\pmod p\) です。 しかし \(1\le i,j\le m
いま全ての合同式 \(ak\equiv\varepsilon_k b_k\pmod p\) を掛け合わせると \[ a^m(1\cdot2\cdots m) \equiv (\varepsilon_1\varepsilon_2\cdots\varepsilon_m)(b_1b_2\cdots b_m) \pmod p. \] \(b_1,\ldots,b_m\) は \(1,\ldots,m\) の並べ替えなので \[ b_1b_2\cdots b_m = 1\cdot2\cdots m=m!. \] また \(\varepsilon_k=-1\) となる個数は \(n\) なので \[ \varepsilon_1\varepsilon_2\cdots\varepsilon_m=(-1)^n. \] したがって \[ a^m m!\equiv (-1)^n m!\pmod p. \] \(m!\) は \(p\) で割れないため逆元を持ち、キャンセルして \[ a^m\equiv (-1)^n\pmod p. \] Euler 判定法により \(a^m\equiv\Leg{a}{p}\pmod p\) です。 両辺は \(\pm1\) なので、 \[ \Leg{a}{p}=(-1)^n. \]
5. 補充法則:\(-1\) と \(2\) の振る舞い
5.1 \(-1\) に関する補充法則
\(p\) を奇素数とすると \[ \Leg{-1}{p}=(-1)^{\frac{p-1}{2}}. \] つまり \(-1\) は \(p\equiv1\pmod4\) で平方剰余、\(p\equiv3\pmod4\) で平方非剰余です。
第 1 補充法則の証明
\(m=(p-1)/2\) とおき、\(a=-1\) に Gauss の補題を適用します。 \(k=1,2,\ldots,m\) について \[ (-1)k\equiv p-k\pmod p. \] 最小正剰余は \(p-k\) です。ここで \[ p-k\ge p-m=p-\frac{p-1}{2}=\frac{p+1}{2}>\frac p2 \] なので、すべての \(k\) で上半分に入ります。 よって \(n=m\) です。Gauss の補題より \[ \Leg{-1}{p}=(-1)^m=(-1)^{\frac{p-1}{2}}. \]
5.2 \(2\) に関する補充法則
\(p\) を奇素数とすると \[ \Leg{2}{p}=(-1)^{\frac{p^2-1}{8}}. \] 同値に、 \[ \Leg{2}{p}=1 \iff p\equiv1,7\pmod8, \qquad \Leg{2}{p}=-1 \iff p\equiv3,5\pmod8. \]
第 2 補充法則の証明
\(m=(p-1)/2\) とおき、\(a=2\) に Gauss の補題を適用します。 \(k=1,2,\ldots,m\) について、\(2k\) は \[ 2,4,6,\ldots,2m=p-1 \] なので、すでに \(p\) を法とする最小正剰余です。 上半分に入る条件は \[ 2k>\frac p2. \] \(p=2m+1\) だから \(p/2=m+1/2\) であり、整数 \(2k\) についてこれは \[ 2k\ge m+1 \] と同値です。したがって上半分に入る \(k\) の個数は \[ n=\#\{k:1\le k\le m,\, k>m/2\}=m-\left\lfloor\frac m2\right\rfloor=\left\lceil\frac m2\right\rceil. \] ここで \(p\) を \(8\) で分類します。
| \(p\) の形 | \(m=(p-1)/2\) | \(n=\lceil m/2\rceil\) | \((-1)^n\) |
|---|---|---|---|
| \(p=8t+1\) | \(4t\) | \(2t\) | \(1\) |
| \(p=8t+3\) | \(4t+1\) | \(2t+1\) | \(-1\) |
| \(p=8t+5\) | \(4t+2\) | \(2t+1\) | \(-1\) |
| \(p=8t+7\) | \(4t+3\) | \(2t+2\) | \(1\) |
よって \(\Leg{2}{p}=1\) は \(p\equiv1,7\pmod8\) のとき、 \(\Leg{2}{p}=-1\) は \(p\equiv3,5\pmod8\) のときです。 この符号は \[ (-1)^{\frac{p^2-1}{8}} \] と一致します。実際、\((p^2-1)/8\) の偶奇は \(p\pmod8\) だけで決まり、 \(p\equiv1,7\pmod8\) で偶数、\(p\equiv3,5\pmod8\) で奇数です。
6. 平方剰余の相互法則の証明
ここでは Eisenstein の格子点証明を採用します。Gauss の補題から、Legendre 記号はある床関数和の偶奇に等しいことを示し、 その床関数和二つを長方形内の格子点の分割として数えます。
\(p\) を奇素数、\(a\) を \(p\nmid a\) かつ奇数とし、\(m=(p-1)/2\) とする。このとき \[ \Leg{a}{p}=(-1)^{\sum_{k=1}^{m}\left\lfloor\frac{ak}{p}\right\rfloor}. \]
Eisenstein の補題の証明
Gauss の補題の記号を使います。各 \(k=1,\ldots,m\) について \[ ak=p t_k+r_k, \qquad t_k=\left\lfloor\frac{ak}{p}\right\rfloor, \qquad 1\le r_k\le p-1 \] と書きます。\(p\nmid a\) なので \(ak\not\equiv0\pmod p\) であり、したがって \(r_k\ne0\) です。
\(r_k\le m\) のとき \(b_k=r_k\)、\(r_k>m\) のとき \(b_k=p-r_k\) とします。 \(r_k>m\) となる個数を \(n\) とすると、Gauss の補題により \[ \Leg{a}{p}=(-1)^n. \] したがって示すべきことは \[ n\equiv \sum_{k=1}^{m}t_k\pmod2 \] です。
\(b_1,\ldots,b_m\) は \(1,\ldots,m\) の並べ替えなので \[ \sum_{k=1}^{m}b_k=\sum_{k=1}^{m}k. \] これを \(2\) を法として見ます。\(r_k>m\) のとき \(b_k=p-r_k\) であり、 \[ (p-r_k)-r_k=p-2r_k\equiv1\pmod2 \] です。\(r_k\le m\) のときは \(b_k-r_k=0\) です。したがって \[ \sum_{k=1}^{m}b_k\equiv \sum_{k=1}^{m}r_k+n\pmod2. \] また \(r_k=ak-pt_k\) なので、\(a,p\) がともに奇数であることから \[ r_k\equiv k-t_k\equiv k+t_k\pmod2. \] よって \[ \sum_{k=1}^{m}r_k \equiv \sum_{k=1}^{m}k+\sum_{k=1}^{m}t_k \pmod2. \] 以上を合わせると \[ \sum_{k=1}^{m}k =\sum_{k=1}^{m}b_k \equiv \sum_{k=1}^{m}k+\sum_{k=1}^{m}t_k+n \pmod2. \] 両辺から \(\sum k\) を消して \[ \sum_{k=1}^{m}t_k+n\equiv0\pmod2. \] したがって \[ n\equiv\sum_{k=1}^{m}t_k\pmod2 \] です。これを Gauss の補題に代入して \[ \Leg{a}{p}=(-1)^n=(-1)^{\sum_{k=1}^{m}\lfloor ak/p\rfloor}. \]
6.1 格子点の分割
\(p,q\) を相異なる奇素数とし、 \[ m=\frac{p-1}{2},\qquad n=\frac{q-1}{2} \] とおきます。長方形 \[ R=\{(x,y)\in\Z^2:1\le x\le m,\ 1\le y\le n\} \] の格子点を考えます。点の総数は \[ mn=\frac{p-1}{2}\frac{q-1}{2} =\frac{(p-1)(q-1)}{4} \] です。
直線 \(y=(q/p)x\) はこの長方形の格子点を通らない
もし \((x,y)\in R\) が直線上にあれば \[ y=\frac qp x \] ですから \[ py=qx. \] \(p\) は素数で、\(p\ne q\) なので \(p\nmid q\) です。 \(py=qx\) から \(p\mid qx\)、したがって \(p\mid x\) です。 しかし \(1\le x\le m=(p-1)/2
直線の下側と上側の格子点数
固定した \(x\in\{1,\ldots,m\}\) について、直線の下側にある点は \[ 1\le y<\frac qp x \] を満たす整数 \(y\) です。直線は格子点を通らないので \(qx/p\) は整数ではありません。 よってその個数は \[ \left\lfloor\frac{qx}{p}\right\rfloor \] です。なお \(x\le(p-1)/2\) なので \[ \frac{qx}{p}\le\frac{q(p-1)}{2p}<\frac q2=\frac{q-1}{2}+\frac12=n+\frac12, \] したがって床は高々 \(n\) で、長方形の外側を数えていません。 したがって下側の点数は \[ S_{q,p}=\sum_{x=1}^{m}\left\lfloor\frac{qx}{p}\right\rfloor. \]
固定した \(y\in\{1,\ldots,n\}\) について、直線の上側にある点は \[ y>\frac qp x \] つまり \[ x<\frac pq y \] を満たす整数 \(x\) です。同様に \(py/q\) は整数ではないので、その個数は \[ \left\lfloor\frac{py}{q}\right\rfloor \] です。したがって上側の点数は \[ S_{p,q}=\sum_{y=1}^{n}\left\lfloor\frac{py}{q}\right\rfloor. \]
直線は格子点を通らないので、\(R\) の各点は下側または上側のどちらか一方に属します。 よって \[ S_{q,p}+S_{p,q}=mn. \]
6.2 定理の結論
相互法則の証明を完成させる
Eisenstein の補題を \((a,p)=(q,p)\) に適用すると、\(q\) は奇数なので \[ \Leg{q}{p}=(-1)^{S_{q,p}} =(-1)^{\sum_{x=1}^{(p-1)/2}\left\lfloor\frac{qx}{p}\right\rfloor}. \] 同じく \((a,p)=(p,q)\) に適用すると \[ \Leg{p}{q}=(-1)^{S_{p,q}} =(-1)^{\sum_{y=1}^{(q-1)/2}\left\lfloor\frac{py}{q}\right\rfloor}. \] したがって \[ \Leg{q}{p}\Leg{p}{q} =(-1)^{S_{q,p}}(-1)^{S_{p,q}} =(-1)^{S_{q,p}+S_{p,q}}. \] 格子点の分割から \[ S_{q,p}+S_{p,q}=mn=\frac{p-1}{2}\frac{q-1}{2} \] なので \[ \Leg{q}{p}\Leg{p}{q} =(-1)^{\frac{p-1}{2}\frac{q-1}{2}}. \] これは平方剰余の相互法則そのものです。
\(\frac{p-1}{2}\frac{q-1}{2}\) が奇数になるのは、\(\frac{p-1}{2}\) と \(\frac{q-1}{2}\) がともに奇数のときだけです。 これは \[ p\equiv3\pmod4, \qquad q\equiv3\pmod4 \] と同値です。したがって、両方が \(3\pmod4\) のときだけ符号が反転します。
7. 計算例:相互法則をどう使うか
\(13\equiv1\pmod4\) なので相互法則の符号は正です。よって \[ \Leg{13}{17}=\Leg{17}{13}. \] 分子を分母で割った余りに直すと \(17\equiv4\pmod{13}\) なので \[ \Leg{17}{13}=\Leg{4}{13}. \] \(4=2^2\) は明らかに平方なので \[ \Leg{4}{13}=1. \] したがって \[ \Leg{13}{17}=1. \]
\(11\equiv3\pmod4\)、\(19\equiv3\pmod4\) なので符号が反転します。 \[ \Leg{11}{19}=-\Leg{19}{11}. \] \(19\equiv8\pmod{11}\) だから \[ \Leg{19}{11}=\Leg{8}{11}. \] 積性により \(8=2^3\) なので \[ \Leg{8}{11}=\Leg{2}{11}^3. \] 第 2 補充法則より、\(11\equiv3\pmod8\) なので \[ \Leg{2}{11}=-1. \] よって \[ \Leg{8}{11}=(-1)^3=-1. \] 最初の反転を戻して \[ \Leg{11}{19}=-(-1)=1. \]
\(101\equiv1\pmod4\) なので符号は反転しません。 \[ \Leg{79}{101}=\Leg{101}{79}=\Leg{22}{79}. \] \(22=2\cdot11\) より \[ \Leg{22}{79}=\Leg{2}{79}\Leg{11}{79}. \] まず \(79\equiv7\pmod8\) だから \[ \Leg{2}{79}=1. \] 次に \(11\equiv3\pmod4\)、\(79\equiv3\pmod4\) なので \[ \Leg{11}{79}=-\Leg{79}{11}. \] \(79\equiv2\pmod{11}\) なので \[ \Leg{79}{11}=\Leg{2}{11}=-1 \] です。したがって \[ \Leg{11}{79}=-(-1)=1. \] 結局 \[ \Leg{79}{101}=1\cdot1=1. \]
- 分子を分母で割った余りに直す:\(\Leg{a}{p}=\Leg{a\bmod p}{p}\)。
- 分子が積なら積性で分解する。
- 分子が \(-1\) または \(2\) なら補充法則を使う。
- 分子が奇素数 \(q\) なら相互法則で \(\Leg{q}{p}\) を \(\Leg{p}{q}\) に変換する。
- 分母が小さくなるように繰り返す。これは Euclid の互除法と同様に終了する。
8. Jacobi 記号と高速計算
Legendre 記号は分母が奇素数の場合に定義されます。分母を任意の正の奇数へ拡張したものが Jacobi 記号です。 計算アルゴリズムでは、Jacobi 記号の相互法則が非常に便利です。
\(n\) を正の奇数とし、素因数分解を \[ n=p_1^{e_1}p_2^{e_2}\cdots p_r^{e_r} \] とします。このとき \[ \Leg{a}{n} =\prod_{i=1}^{r}\Leg{a}{p_i}^{e_i} \] と定義します。右辺の各記号は Legendre 記号です。
\(n\) が合成数の場合、\(\Leg{a}{n}=1\) でも \(x^2\equiv a\pmod n\) が解を持つとは限りません。 例えば \[ \Leg{2}{15}=\Leg{2}{3}\Leg{2}{5}=(-1)(-1)=1 \] ですが、\(15\) を法として平方数の余りは \[ 0,1,4,6,9,10 \] であり、\(2\) は含まれません。
\(m,n\) を正の奇数とし、\(\gcd(a,n)=1\) とします。Jacobi 記号についても \[ \Leg{ab}{n}=\Leg{a}{n}\Leg{b}{n} \] が成り立ち、また \(m,n\) が互いに素なら \[ \Leg{m}{n}\Leg{n}{m}=(-1)^{\frac{m-1}{2}\frac{n-1}{2}} \] が成り立ちます。これは分母の素因数分解に対して Legendre 記号の相互法則を掛け合わせることで得られます。
Jacobi 記号の反復アルゴリズム
- まず \(a\leftarrow a\bmod n\)、符号変数 \(s\leftarrow1\) とする。
- \(a=0\) なら、\(n=1\) のとき \(s\)、そうでなければ \(0\) を返す。
- \(a\) が偶数である限り \(a\leftarrow a/2\) とし、\(n\equiv3,5\pmod8\) なら \(s\leftarrow-s\) とする。
- \(a,n\) を入れ替える。もし入れ替え前の \(a\) と \(n\) がともに \(3\pmod4\) なら \(s\leftarrow-s\) とする。
- \(a\leftarrow a\bmod n\) として 2 に戻る。
この手順は、\(2\) の補充法則と相互法則を Euclid の互除法のように繰り返しているだけです。 素因数分解を必要としない点が重要です。
9. 対話的実験室
以下のツールはブラウザ内の JavaScript だけで計算します。大きすぎる数は表示が重くなるため、表や可視化は小〜中規模の素数で試すのがおすすめです。
9.1 Legendre 記号・Jacobi 記号計算機
9.2 平方剰余表
9.3 Gauss の補題の可視化
9.4 相互法則チェッカー
9.5 Eisenstein 格子点可視化
10. まとめ:全体像を一枚で見る
主要公式
\[ \Leg{-1}{p}=(-1)^{(p-1)/2}, \qquad \Leg{2}{p}=(-1)^{(p^2-1)/8}. \] \[ \Leg{ab}{p}=\Leg{a}{p}\Leg{b}{p}. \]
証明の骨格
- 平方剰余は非零剰余の半分。
- Euler 判定法で \(a^{(p-1)/2}\) と Legendre 記号を結ぶ。
- Gauss の補題で符号を「上半分に入る個数」に変換する。
- Eisenstein の補題で符号を床関数和の偶奇に変換する。
- 格子点を直線の上下に分け、二つの床関数和の合計を数える。
相互法則は、二つの素数 \(p,q\) の間で「平方であるかどうか」がほぼ対称であることを述べています。 ただし、両方が \(3\pmod4\) のときだけ、符号が一度反転します。 その反転は、長方形内の格子点数 \[ \frac{p-1}{2}\frac{q-1}{2} \] の偶奇として現れます。