合同式(mod)・逆元 #
最近知ったのだが、今は高校数学の課程に合同式が入っているそうだ。
自分はゆとり世代ゆえ正式には学んでない(予備校で少し出てきたことはあったが曖昧)ので、改めて学び直してみた。
同時に、競プロに関係する事項も。
合同式(mod) #
合同式とは以下の定義。
a,bを整数、mを自然数とした時、
「aをmで割った余り」と「bをmで割った余り」が等しいことを以下の式で表す。
\(\tag{1} a \equiv b \pmod{m}\)この式を合同式という。
プログラムで表現するなら
a%m == b%m
である。
合同式の定理 #
合同式には定理がいくつかある。
合同式の和 #
整数a,b,c,d、自然数mにおいて a≡b (mod m) ,c≡d (mod m) の時、以下の式が成立する。
\(\tag{2} a+c \equiv b+d \pmod{m}\)合同式の差 #
同様に、整数a,b,c,d、自然数mにおいて a≡b (mod m) ,c≡d (mod m) の時、以下の式が成立する。
\(\tag{3} a-c \equiv b-d \pmod{m}\)合同式の積 #
同様に、整数a,b,c,d、自然数mにおいて a≡b (mod m) ,c≡d (mod m) の時、以下の式が成立する。
\(\tag{4} ac \equiv bd \pmod{m}\)以上の式より、
\(\tag{5} a+c \equiv b+c \pmod{m} \\ a-c \equiv b-c \pmod{m} \\ ac \equiv bc \pmod{m} \)も成立し、これらの式から、合同式は移項・乗法も可能である。
合同式のべき乗 #
整数a,b、自然数mにおいて a≡b (mod m) の時、以下の式が成立する。
\(\tag{6} a^n \equiv b^n \pmod{m}\)(証明) #
整数a,b,c,dを、自然数mと整数p,q,r,s,t,uを用い、以下のように定義する。
\(a = pm + t \\ b = qm + t \\ c = rm + u \\ d = sm + u \)この時、
\(a \equiv b \pmod{m} \\ c \equiv d \pmod{m}\)であり、また
\(\begin{aligned} a+c &= (p+r)m + (t+u) \\ b+d &= (q+s)m + (t+u) \\ a-c &= (p-r)m + (t-u) \\ b-d &= (q-s)m + (t-u) \\ ac &= (prm + pu+tr)m + tu \\ bd &= (qsm + qu+st)m + tu \\ a^n &= (p^{n} m^{n-1} + {}_n \mathrm{C} _1 p^{n-1} m^{n-2} t + \cdots + {}_n \mathrm{C} _{n-1} p t^{n-1})m + t^n \\ b^n &= (q^{n} m^{n-1} + {}_n \mathrm{C} _1 p^{n-1} m^{n-2} t + \cdots + {}_n \mathrm{C} _{n-1} p t^{n-1})m + t^n \end{aligned}\)である。これらより、
\(\begin{aligned} a+c & \equiv b+d & \pmod{m} \\ a-c & \equiv b-d & \pmod{m} \\ ac & \equiv bd & \pmod{m} \\ a^n & \equiv b^n & \pmod{m} \end{aligned}\)が成立する。
合同式の除法 #
整数a,b,c、 自然数mにおいて ab≡ac (mod m) の時でかつaとmが互いに素の時、以下の式が成立する。
\(\tag{7} \begin{aligned} ab & \equiv ac & \pmod{m} \\ \Leftrightarrow b & \equiv c & \pmod{m} \end{aligned}\)(証明) #
ab≡ac (mod m) 、かつaとmが互いに素の時において
\(\tag{8} \begin{aligned} ab & \equiv ac & \pmod{m} \\ \Leftrightarrow ab-ac & \equiv 0 & \pmod{m} \\ \Leftrightarrow a(b-c) & \equiv 0 & \pmod{m} \end{aligned}\)となり、この式において、a(b-c)と0はmで割った余りが同じであり、0をmで割った余りは0なので、a(b-c)をmで割った余りも0、つまりa(b-c)はmで割り切れる(=mの倍数)ということになる。
aとmは互いに素なので、b-cがmの倍数という事になる。
これより、(b-c)≡0 (mod m)が成立するので、
\(\tag{9} \begin{aligned} (b-c) & \equiv 0 & \pmod{m} \\ \Leftrightarrow b & \equiv c & \pmod{m} \end{aligned}\)となり、aとmが互いに素でab≡ac (mod m)の時、b≡c (mod m)が成立する。
ちなみに、aとmが互いに素ではない時、(b-c)がmの倍数でない場合があるため、これは成立しない。
以上が、合同式についての定義及び定理の紹介である。
これらを踏まえ、次に逆元についてを述べる。
逆元 #
modを使った方程式を解いてみることを考える。例えばa,bを整数、mを自然数とした、以下のような式があったとする。
\(\tag{10} ax \equiv b \pmod{m}\)この式でxを求めるにはどのようにすれば良いのだろうか。
この時、
\(\tag{11} ay \equiv 1 \pmod{m}\)となるような整数yが存在した場合、合同式の積の定理から、
\(\tag{12} \begin{aligned} x & \equiv x & \pmod{m} \\ \Leftrightarrow 1 \cdot x & \equiv ay \cdot x & \pmod{m} \\ \Leftrightarrow x & \equiv y \cdot ax & \pmod{m} \end{aligned}\) \(\tag{13} \begin{aligned} ax & \equiv b & \pmod{m} \\ \Leftrightarrow y \cdot ax & \equiv y \cdot b & \pmod{m} \end{aligned}\)が成り立つ。これより、
\(\tag{14} \begin{aligned} x & \equiv y \cdot ax & \pmod{m} \\ & \equiv y \cdot b & \pmod{m} \end{aligned}\)と求めることができる。
このように、a,mに対して
\(\tag{15} ay \equiv 1 \pmod{m}\)となるような整数yのことを、aの逆元といい、大体はa-1と書く。
\(\tag{16} a \cdot a^{-1} \equiv 1 \pmod{m}\)また、式(10)において、a,mが互いに素でない場合以下のように書き換えることもできる。
\(\tag{17} \frac{ax}{gcd(a,m)} \equiv \frac{b}{gcd(a,m)} \pmod{ \frac{m}{gcd(a,m)} }\)ここで、gcd(a,m)はaとmの最大公約数である。
式(14),(16),(17)より、式(10)の解は
\(\tag{18} x = \left(\frac{a}{gcd(a,m)}\right)^{-1} \cdot \frac{b}{gcd(a,m)} + k \cdot \frac{m}{gcd(a,m)} \pmod{ m } \)となる。ただしkは0 ≦ k ≦ gcd(a,m)を満たす整数である。
フェルマーの小定理 #
pが素数の時、任意の整数xに対して
\(\tag{19} x^p \equiv x \pmod{p}\)が成り立つ。
特にxがpで割り切れない場合(互いに素)の時は、合同式の除法より
\(\tag{20} x^{p-1} \equiv 1 \pmod{p}\)が成り立つ。
式(20)より
\(\tag{21} x \cdot x^{p-2} \equiv 1 \pmod{p}\)となるので、pが素数の時、整数xの逆元はxp-2であることもわかる。