不會
數學

數論

小學數學

簡單記號

帶餘數除法: 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}
Made with Slides.com