國慶七天樂——第二天
【數論】(所有的等於都是恒等)
- 費馬小定理:p為質數
A^(p-1)=1 (mod p)
- 歐拉定理:p是任意自然數
A^phi(p)=1 (mod p)
費馬小定理是歐拉定理的特殊情況
歐拉函數:phi(n)是少於n的數中與n互質的數的數目
求法:小學生容斥
減去含一個素數的,加上含兩個素數的,減去含三個函數的……. N(1/1-1/p1-1/p2+1/p1*p1…….)
設R(s)=(1-1/p1)*R(S/n))
p為底數集合,a為指數集合
例子:15=3^1*5^1
Phi(15)=(3-1)*3^(1-1)*(5-1)*5^(1-1)=2*4=8
一個需要記住的結論
例題
- 素數判斷
隨機整數a,根據費馬小定理判斷a^(n-1)=1
4二次探測定理
若p是素數,x是一個整數,且x^2 mod p=1,那麽x=1|x=-1(mod p)
一個質數不存在“非平凡平方根”
例:23^2=1(mod 66)
5.Miller_rabin
Miller-rabin是一個基於費馬小和二次探測定理的一種有一定錯誤率的算法。
我們要盡可能的找能夠判斷這個數為合數的線索,
要麽,它違背了費馬小,要麽它違背了二次探測(主)
如果他是從(-1)^2過來的,我無話可說,也無法判斷是否為合數,但如果他是從別的數通過%p得來的,那麽他就是是違背了二次探測定理,所以我們就可以就此判斷他是合數
6.快速乘
11.同二進制快速冪
12. 2.65526進制快速冪
13. (a * b?(long long)floor((long double)a *b/m) * m + m)%m
人品算法,爆零自負自負
7.中國剩余定理
x在mod Bi時,其實只有一個式子與結果有關
就是:Ki*R/Bi(其它式子都包含Bi)
所以就會變成 Ki’*R/Bi=x (mod Bi),也就變成了裴蜀定理
8.歐幾裏得算法
Gcd(a,b)=gcd(b,a%b)
Gcd(a,b)*ab=lcm(a,b)
裴蜀定理:ax+by=m 有解當且僅當m是gcd(a,b)的倍數//
擴展歐幾裏得求同余方程
求得 x=y’,y=x’-a/by’,推到底,再順著退回來
9.同余系
10.積性函數:如果一個數論函數f(x)滿足對於任意的互質正整數n,m均有f(nm)=f(n)*f(m),稱為積數函數
完全積性函數:如果一個數論函數f(x)滿足對於任意的正整數n,m均有f(nm)=f(n)*f(m),稱為完全積數函數(特)
常見積性函數
模n意義下的逆元INV(x)
歐拉函數 phi(x)
因數個數的函數
因數和函數
莫比烏斯函數 mu(x)
11.線性篩
If(i%prime[j]==0) break;
線性篩不僅可以O(n)的篩除所有的素數,還可以同時求出所有的積性函數,具體詳見《賈誌鵬線性篩》
例題:定情信物:
Ans=c(k,n)*2^(n-k)
N表示總維度,k表示所求元素的個數
線性篩求逆元,記錄p出現了多少次
【高精度】
用class(類)來搞最好。
重定義函數+壓位
【卷積】ci=sum k (ak*bi-k)
aàa’
bàb’
càc’ (傅裏葉變換O(n))
a’與b’的卷積=c’ ,a與b的卷積=c
【Python】;
Import.math 數學函數
Import.sqrt(10);
Math.log(1,123)
甚至可以求虛數 import.sqrt(-1)
且用python寫數據,輸出的數據都是自帶最快高精的。
具體的語句還需要具體的學習
【矩陣】
國慶七天樂——第二天