二次剩余學習筆記
二次剩余學習筆記
前言
咕了很久,一直想學這算法來著,真是神仙算法。。。
問題:
求解\(x^2 \equiv n \pmod{p}(p為奇素數)\)
解析
定義1
稱\(n\)為模\(p\)意義下的二次剩余當且僅當\(x^2 \equiv n \pmod{p}\)有解,非二次剩余同理。
定理1
當且僅當\(n^{\frac{p-1}{2}} \equiv 1 \pmod{p}\)時,\(n\)為二次剩余,反之,若\(n^{\frac{p-1}{2}} \equiv -1 \pmod{p}\),則\(n\)為非二次剩余(不對\(n=0\)做考慮)。
證明1
先考慮\(n^{\frac{p-1}{2}}\)
\[n^{p-1}-1 \equiv 0 \pmod{p}\]
即有:
\[(n^{\frac{p-1}{2}}+1)(n^{\frac{p-1}{2}}-1) \equiv 0 \pmod{p}\]
所以:
\[n^{\frac{p-1}{2}} \equiv 1或-1\pmod{p})\]
而當\(n\)為二次剩余時,有\(x^2 \equiv n \pmod{p}\),又\(x^{p-1} \equiv 1 \pmod{p}\),所以:\(n^{\frac{p-1}{2}} \equiv 1 \pmod{p}\),反之,若\(n\)為非二次剩余,那麽有:\(n^{\frac{p-1}{2}} \equiv -1 \pmod{p}\)
定義2
類似復數的,我們對於模\(p\)意義下的非二次剩余\(x\),定義類似虛部的數\(i=\sqrt{x}\),當然,這樣得到一類數的表示方法\(a+bi\),我們類比復數定義這一類數的運算,那麽這一類數的四則運算具有自封閉性。
定理2
若\(\omega=a^2-n\)為非二次剩余,那麽\((a+\sqrt{\omega})^{\frac{p+1}{2}}\)(其中\(\sqrt{w}\)即可看做虛根做運算)即為\(n\)二次剩余的根,另一個根即為相反數。
證明2
先考慮一個式子\((a+\sqrt{\omega})^{p}\),用二項式定理展開,有:
\[(a+\sqrt{\omega})^{p}=\sum_{i=0}^{p}{i \choose p}a^{p-i}{\sqrt{\omega}}^{i}\]
又因為在模\(p\)意義下,當\(i不為0或p\)時,\({i \choose p} \equiv 0 \pmod{p}\)(展開一下就是了),那麽有:
\[(a+\sqrt{\omega})^{p} \equiv a^p+{\sqrt{\omega}}^p \equiv a^p+w^{\frac{p-1}{2}}\sqrt{\omega} \equiv a-\sqrt{w}\pmod{p}\]
所以:
\[(a+\sqrt{\omega})^{{p+1}} \equiv (a+\sqrt{\omega})(a-\sqrt{\omega}) \equiv a^2-\omega \equiv n\pmod{p}\]
得證。
定理3
對於\(0 \lt n \leq p-1\),有\(\frac{p-1}{2}\)個\(n\)為二次剩余。
證明3
很簡單,直接枚舉作為根的\(x\),\(x\)有\(p-1\)中取值(不考慮0),而\(x^2 \equiv (p-x)^2\)
所以二次剩余只有\(\frac{p-1}{2}\)個取值,得證。
那麽現在的唯一問題就是如何找到合適的\(a\)使得\(\omega\)滿足條件,我們考慮隨機,由定理3可知,\(a^2-n\)在模\(p\)意義下為非二次剩余的概率為\(\frac{p-1}{2p}\),那麽這樣隨機的期望次數就接近於2,可以看做是\(O(1)\)求。自此,我們解決了這個具有特殊性的二次剩余,算法復雜度是多少呢?因為其中要快速冪,復雜度為\(O(\log{p})\)。
二次剩余學習筆記