二次剩餘小結

2022-03-30 08:04:47 字數 4059 閱讀 5372

對於模數\(n\)和整數\(a\),若存在整數\(x\),滿足

\[x^2\equiv a(mod\ n)

\]則稱\(x\)是模\(n\)意義下的二次剩餘,否則是非二次剩餘

注:這裡討論的\(x\)滿足\(x\in[1,n)\)

尤拉判別法:對於奇素數\(p\),\(a\)是模\(p\)意義下的二次剩餘當且僅當\(a^}\equiv 1(mod\ p)\)

類似的,若\(a\)是模\(p\)意義下的二次非剩餘則有\(a^}\equiv-1(mod\ p)\)

證明先證明在\(a\nmid p\)時,\(a^}\equiv 1或-1(mod\ p)\)

由費馬小定理知\(a^\equiv 1(mod\ p)\)

移項,利用平方差公式得\((a^}+1)(a^}-1)\equiv 0(mod\ p)\)

再由\(p\)是奇素數知上兩式中必有且僅有乙個同余於0

再證明若\(a\)是二次剩餘的充要條件為\(a^}\equiv 1(mod\ p)\)

先證必要性,若\(a\)是模\(p\)意義下的二次剩餘,那麼必有整數\(x_0^2\equiv a(mod\ p)\),且\(p\nmid x_0\)

同時做\(\frac\)次方,有\(a^}\equiv x_0^\equiv 1(mod\ p)\)

再證充分性,設有\(a^}\equiv 1(mod\ p)\)

對於\([1,p)\)中的整數,考慮如下的同餘方程

\[xy\equiv a(mod\ p)

\]注意到,對於任意的整數\(x\in[1,p)\),一定有且僅有乙個\(y\in[1,p)\)滿足上式

假設\(a\)不是二次剩餘,那麼對\(\forall x\),均有\(y\neq x\)

也就是說對於\([1,p)\)中的\(p-1\)個整數,我們可以將它們分成\(\frac\)組,使得每乙個數均正好屬於一組

將這\(p-1\)個數乘起來,有

\[(p-1)!~\equiv a^}(mod\ p)

\]由威爾遜定理,有\((p-1)!\equiv -1(mod\ p)\),也就是\(a^}\equiv -1(mod\ p)\),與題設矛盾

故假設錯誤,所以一定有\(a\)是模\(p\)意義下的二次剩餘

方便描述,我們定義勒讓德(legendre)符號\(\begin\frac\end\)

\[\begin\frac\end=

\begin

0 & a|p\\

-1 & a不是模p意義下的二次剩餘\\

1 & a是模p意義下的二次剩餘

\end

\]具體求值的話可以利用上面的尤拉判別法(僅當\(p\)是奇素數時)

先證明乙個定理:

在模\(p\)意義下的乙個簡化剩餘系中,有\(\frac\)個數具有二次剩餘,且乙個模\(p\)意義下的二次剩餘\(a\),有兩個不同的\(x\)滿足\(x^2\equiv a(mod\ p)\)

證明取模\(p\)意義下的乙個簡化剩餘系如下

\[-\frac,-\frac+1,\cdots,-1,1,2,\cdots,\frac

\]若\(a\)是模\(p\)意義下的二次剩餘,僅當

\[a\equiv(-\frac)^2或(-\frac+1)^2\cdots或(\frac)^2(mod\ p)

\]又由\((-x)^2=x^2\)知,若\(a\)是模\(p\)意義下的二次剩餘,僅當

\[a\equiv 1^2或2^2或\cdots或(\frac)^2(mod\ p)

\]且我們知道在\(1\leq i時,\(i^2\)與\(j^2\)在模\(p\)意義下不相等,所以上面給出的\(\frac\)個數的平方恰好對應了在模\(p\)的意義下有二次剩餘的\(\frac\)個不同的數,所以在模\(p\)的意義下\(p\)的簡化剩餘系中有\(\frac\)個數有二次剩餘

根據上面的證明,對於乙個二次剩餘\(a\),那麼一定存在\(x\in[1,\frac]\),使得\(x^2\equiv a(mod\ p)\)

那麼在一開始提到的簡化剩餘系中,一定還有乙個\(-x\)使得\((-x)^2\equiv a(mod\ p)\)

於是就有兩個不同的\(x\)使得\(x^2\equiv a(mod\ p)\)

那麼這和求解有什麼關係呢?

首先判掉不是二次剩餘的情況

接下來有2個\(x\)滿足\(x^2\equiv a(mod\ p)\),我們只需要求出乙個,由上面的證明知另乙個和它的和為\(p\)

(接下來介紹高階操作)

假設我們要求\(x^2\equiv n(mod\ p)\),其中\(p\)是乙個奇素數

我們先隨便找乙個數\(a\),滿足\(\begin\frac \end=-1\)

設\(\omega=\sqrt\),那麼\(x=(a+\omega)^\frac\)

正確性呢?

證明\(x^2=(a+\omega)^=(a+\omega)^p(a+\omega)=(a+\omega)\sum_^p\dbinoma^i\omega^\)

注意到\(1\leq i時,\(p|\dbinom\)

於是\(x^2\equiv(a^p+\omega^p)(a+w)\ (mod\ p)\)

我們由費馬小定理知\(a^\equiv 1(mod\ p)\),所以\(a^p\equiv a(mod\ p)\)

那這個\(\omega^p\)是什麼,他甚至可能不是整數

我們由上面的操作過程知\(\omega^=(\omega^2)^}\equiv(a^2-n)^}\equiv -1(mod\ p)\)

所以\(\omega^p\equiv -\omega(mod\ p)\)

於是\(x^2\equiv(a-\omega)(a+\omega)\equiv a^2-(a^2-n)\equiv n(mod\ p)\)

證畢然後你就會發現這個做法的時間複雜度和找\(a\)所花的時間有關

然而你由上面的證明過程知你有\(\frac\)的機率找到乙個合法的\(a\)

然後就做完了?這個\(\omega\)可以是無理數!

仿照複數\(a+bi\)的形式,我們將所有數寫成\(a+b\omega\),這裡的話重新寫乙個乘法就可以了

模板題:

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define lowbit(x) (x)&(-x)

#define sqr(x) (x)*(x)

#define fir first

#define sec second

#define rep(i,a,b) for (register int i=a;i<=b;i++)

#define per(i,a,b) for (register int i=a;i>=b;i--)

#define maxd 1000000007

#define eps 1e-6

typedef long long ll;

const int n=100000;

const double pi=acos(-1.0);

ll w,p,n;

struct complex

};complex operator *(complex a,complex b)

ll qpow(ll x,ll y,ll p)

return ans;

}complex qpow(complex a,ll y)

return ans;

}int read()

while ((ch>='0') && (ch<='9'))

return x*f;

}ll legendre(ll x)

int main()

ll ans1=qpow(complex(a,1),(p+1)>>1).x;

ll ans2=p-ans1;

if (ans1>ans2) swap(ans1,ans2);

printf("%lld %lld\n",ans1,ans2);

}} }

return 0;

}

二次剩餘小記

看 text 的部落格看到的,發現似乎並沒有想象中的那麼難,就學了一下,過了板題,這裡記錄一下,暫時還是只會二次剩餘,n 次剩餘暫時先放一下。下文的 p 即是模數。我們稱 n 為模 p 意義下的二次剩餘當且僅當存在 x 使得 x 2 equiv n pmod p,x in mathbb 下文的 ma...

二次剩餘雜記

參考資料一 參考資料二 對於 x 和 p 如果存在 a in 0,p 滿足 a 2 equiv x pmod p 則稱x為模 p 的二次剩餘。在這裡,我們暫時只討論 p 為奇素數的情況。有乙個性質,二次剩餘與非二次剩餘的個數均為 frac 2 如果 p 的原根為 g 那麼 g 的偶數次冪顯然都是二次...

二次剩餘理論

定義 設 m 是正整數 若同余式 x 2 equiv a mod p a,p 1 有解,則 a 叫做模 p 的二次剩餘 或平方剩餘 否則,a 叫做模 p 的二次非剩餘。尤拉判別條件 設方程 x 2 equiv a mod p a,p 1,p為奇素數 i a 是模 p 的二次剩餘的充分必要條件是 a ...