我
不會
數學
數論
小學數學
簡單記號
帶餘數除法:
b = am + r ~(0\leq r < n) \\
\iff
b\%a=r\\
若r=0則稱a整除b,記作a|b
最大公因數:gcd(a, b)\\
最小公倍數:lcm(a, b)
輾轉相除法
gcd(a, b) = gcd(a\%b, b)
typedef long long integer;
integer gcd(integer a, integer b){
if (a<b) swap(a, b);
if (b==0) return a;
return gcd(b, a%b);
}
實作超短
用大的除以小的,簡單遞迴
\mathcal O(log(min(a,b)))
時間複雜度?
跟費氏數列有關!
《九章算術》更相減損術
位元運算比模運算快
typedef long long integer;
integer gcd(integer a, integer b){
if (a<b) swap(a, b);
if (b==0) return a;
if ((a&1)==0 && (b&1)==0) return 2*gcd(a>>1, b>>1);
if ((a&1)==0) return gcd(a>>1, b);
if ((b&1)==0) return gcd(a, b>>1);
return gcd(b, a-b);
}
Bézout's Identity
ax+by=m
有整數解\iff gcd(a, b)|m
擴展歐幾里得演算法
\\ a>b
void exgcd(ll a, ll b, ll &x, ll &y, ll &d) {
if (b==0) {
x = 1, y = 0, d = a;
return;
}
exgcd(b, a%b, x, y, d);
ll t = x;
x = y;
y = t-(a/b)*y;
}
數論函數
\pi(n):不超過n的質數數目
\varphi(n):歐拉函數\\
與n互質的數中,不超過n的數目
莫比烏斯反演?
下次再講
質數
質數定理
\lim \limits _{x\to\infty }\frac{\pi (x)}{x/\ln(x)} = 1
\frac{\ln 2}{3}\frac{x}{\ln x} < \pi(x) < 6\ln 2 \frac{x}{\ln x}
而且就算x不大也有
對於所有整數n>3,存在一個質數p,滿足n< p <2n-2
質數判定
從2, 3, ..., \sqrt n 一個個試除即可
注意到任意合數n都有一個不大於\sqrt n 的質因數
\mathcal O(\sqrt n)
\mathcal O(\log ^{12} n)
有沒有可能更好?(十個log都比根號好)
(同時也可質因數分解)
Sieve of Eratosthenes
κόσκινον Ἐρατοσθένους
for (int i=2; i*i<=N; i++) if (!sieve[i])
for (int j=i*2; j<=N; j+=i)
sieve[j] = true;
質數篩
\mathcal O(n\log\log n)
複雜度?
1 + \frac{1}{2} + \frac{1}{3} + ... + \frac{1}{n} = \mathcal O(\log n)
\frac{1}{2} + \frac{1}{3} + \frac{1}{5} ... + \frac{1}{n} = \mathcal O(\log \log n)
線性篩
\mathcal O(n)
for (int i=2;i<N;i++){
if (!sieve[i]) prime.push_back(i);
for (int j=0;i*prime[j]<N;j++){
sieve[i*prime[j]] = true;
if (i%prime[j]==0) break;
}
}
每個合數都只被其最小質因數篩到
同餘乃一等價關係,可將整數依照除以m的餘數分成若干等價類\\餘數為r的同餘類記做 r\mod m
若m|b-a,則稱a與b模m同餘,記做a \equiv b \pmod m
同餘
模m的完全剩餘系:\\
\{0\mod m, 1\mod m, 2\mod m, ..., m-1\mod m\}
模m的既約剩餘系:\\
與m互質的餘數構成的剩餘系\\
如\{1, 3, 7, 9\}為模10的一既約剩餘系
模逆元
ab \equiv 1 \pmod n\\
則稱b為a模n的模逆元,記作b \equiv \frac{1}{a}
由Bézout's Identity知
模逆元存在\iff gcd(a, n) = 1
且取模後模逆元唯一
Wilson's Theorem
(p-1)! \equiv -1 \pmod p
除了1跟-1之外其餘模逆元兩兩配對
特例:費馬小定理
a^{p-1} \equiv 1 \pmod p, ~\forall gcd(a, p)=1
a^{\varphi (n)} = 1 \pmod n, ~\forall gcd(a, n) = 1
歐拉定理
既約剩餘系每個乘上a還是既約剩餘系
複習一下模逆元求法
OJDL7044
- 擴展歐幾里得演算法
- 歐拉定理or費馬小定理+快速冪
都是\mathcal O(log(n))
再來看看更多怪怪的解法
ax+ny=1 \iff x = a^{-1} \pmod n
a^{\varphi(n)-1} = a^{-1} \pmod n
\mathcal O(p)求1 \sim p-1的模逆元
同餘方程
中國剩餘定理
我國南北朝
優秀數學著作
《孫子算經》
組合計數
{n+1 \choose k+1} = {n \choose k} + {n \choose k+1}
{n \choose k} = \frac{n!}{k!(n-k)!}\\為n個元素的集合中,大小為k的子集個數
組合數
二項式定理
(x+y)^{n}=\sum \limits_{{k=0}}^{n}{n \choose k}x^{{n-k}}y^{k}
生成函數
例子:求{n \choose 0} + {n \choose 3} + {n \choose 6} + ...
Lucas Theorem
{\displaystyle {\binom {m}{n}}\equiv \prod _{i=0}^{k}{\binom {m_{i}}{n_{i}}}{\pmod {p}},}
其中\\
m=m_{k}p^{k}+m_{k-1}p^{k-1}+\cdots +m_{1}p+m_{0}\\
n=n_{k}p^{k}+n_{k-1}p^{k-1}+\cdots +n_{1}p+n_{0}
%是m和n的p進位展開。
九點以後不能算數學
證明
(1+X)^{p^{i}}\equiv 1+X^{p^{i}}{\pmod {p}}
\begin{aligned}
\sum _{n=0}^{m}{\binom {m}{n}}x^{n}&=(1+x)^{m}=\prod _{i=0}^{k}\left((1+x)^{p^{i}}\right)^{m_{i}}\\&
\equiv \prod _{i=0}^{k}\left(1+x^{p^{i}}\right)^{m_{i}}=\prod _{i=0}^{k}
\left(\sum _{n_{i}=0}^{m_{i}}{\binom {m_{i}}{n_{i}}}x^{n_{i}p^{i}}\right)\\&=\prod _{i=0}^{k}
\left(\sum _{n_{i}=0}^{p-1}{\binom {m_{i}}{n_{i}}}x^{n_{i}p^{i}}\right)=
\sum _{n=0}^{m}\left(\prod _{i=0}^{k}{\binom {m_{i}}{n_{i}}}\right)x^{n}{\pmod {p}}
\end{aligned}
數學
By Name No
數學
- 536