求模意義下的平方根
一些公式推導有用
q被稱作模n的二次剩餘quadratic residue當且僅當存在x使得:
x 2=
q(mo
dn
)x^2=q(mod\ n)
x2=q(m
odn)
否則q被稱作二次非剩餘quadratic nonresidue
兩個二次剩餘的乘積還是二次剩餘
模n的二次剩餘的數量不會超過n/2 + 1
模質數的二次剩餘
模2下,所有數都是二次剩餘。下面的質數不包括2
模p下有(p-1)/2個二次剩餘和二次非剩餘。(不包括0)
尤拉準則euler』scriterion可以用來判定某個數是不是模p的二次剩餘:
a p−
12
≡}\equiv \;\;\,1}&}x}a\equiv x^}\\-1}&}\end}}
a2p−1
≡}=-1
w2p−1
=−1則(a+
w)p+
12
(a+\sqrt w)^}
(a+w)
2p+1
時乙個二次剩餘
有了最後乙個定理,我們就可以通過隨機選擇a的值來找到乙個滿足條件的解。可以證明找到正解所需的次數的期望只有2.
struct field};
field operator
*(field a,field b)
intran()
intpows
(int a,
int b)
return base;
}field powfield
(field a,
int b)
return base;
}int
legander
(int x)
intsurplus
(int x)
field b=
field
(a,1);
b=powfield
(b,(p+1)
/2);
return b.x;
}
log
(p
)log(p)
log(p)
2019牛客多校#9 b quadratic equation 求模意義下二次方程。給你(x+
y)mo
dp=b
(x + y)\ mod\ p = b
(x+y)m
odp=
b ( x×
y)mo
dp=c
(x \times y) \bmod p=c
(x×y)m
odp=
c 即解x 2−
bx+c
≡0
x^2-bx+c\equiv 0
x2−bx+
c≡0
#include
#define ll long long
const
int mo=
1e9+
7,inv2=
(mo+1)
/2;int
pow(
int x,
int n)
intmain()
int x=
(ll)
(v+a)
*inv2%mo;
int y=
(a-x+mo)
%mo;
if(x>y) x^
=y,y^
=x,x^
=y;printf
("%d %d\n"
,x,y);}
}
dedecms二次開發知識點
前端功能開發 1 檔案前面都要載入公共函式 require once dirname file include common.inc.php 2 php檔案在plus裡面,開發是面向過程,action是方法引數,可以用switch來判斷。如 action 是自動獲取的url中的action引數 sw...
二次剩餘小結
對於模數 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 ...
二次剩餘小記
看 text 的部落格看到的,發現似乎並沒有想象中的那麼難,就學了一下,過了板題,這裡記錄一下,暫時還是只會二次剩餘,n 次剩餘暫時先放一下。下文的 p 即是模數。我們稱 n 為模 p 意義下的二次剩餘當且僅當存在 x 使得 x 2 equiv n pmod p,x in mathbb 下文的 ma...