基礎數學專題複習

數學歸納法

格式:

  1. 證明當\(n\)的值爲初值時的式子成立 (基礎\((basic)\))
  2. 假設當\(n = k\)時原式成立,即有 : ....
  3. 則當\(n = k + 1\)時,論證式子恆成立 (歸納\((induction)\))

e.g. 1

數學歸納法證明等差數列存在\(a_n = a_1 + (n - 1)d\)

\(n = 2\)時,\(a_2 = a_1 + d\),滿足定義式: \(a_n = a_{n - 1} + d\)

假設\(n = k\)時,\(a_k = a_1 + (k - 1)d\)成立,則\(n = k + 1\)時,\(a_{k + 1} = a_k + d = a_1 + (k - 1)d + d = a_1 + kd\)

所以當\(n \geqslant 2\)時,\(a_n = a_1 + (n - 1)d\) \(\qquad \blacksquare\)

e.g. 2

數學歸納法證明平面上的\(n\)條直線最多界定的區域個數\(Ln = \dfrac{n(n + 1)}{2} + 1 , n \geqslant 0\)

存在遞推式:

\(L_0 = 1\)

\(L_n = L_{n - 1} + n,n > 0\)

\(n = 1\)時,\(L_1 = 1 + 1 = L_0 + 1\),滿足遞推式

假設\(n = k\)時,\(L_k = \dfrac{k(k + 1)}{2} + 1\)成立,則\(n = k + 1\)時,\(L_{k + 1} = \dfrac{k(k + 1)}{2} + 1 + (k + 1)=\dfrac{(k + 1)(k + 2)}{2} + 1\)

所以當\(n \geqslant 1\)時,\(Ln = \dfrac{n(n + 1)}{2} + 1 , n \geqslant 0\) \(\qquad \blacksquare\)

Miller-Rabin

\(Miller-Rabin\) 素性檢測

前置知識:

  1. 二次探測定理

\(x ^ 2 \equiv 1 \ (mod \ p)\)\(x \ne 1\)\(x \ne p - 1\) 時, \(p\) 不是質數

\(proof.\)

\(x ^ 2 \equiv 1 \ (mod \ p)\), \(p \mid (x + 1)(x - 1)\)

\(p\) 爲素數,則 \(p \mid (x + 1)\)\(p \mid (x - 1)\)

解得 \(x \equiv 1 \ (mod \ p)\)\(x \equiv -1 \ (mod \ p)\)

\(p\) 爲合數, 則不一定成立, \((e.g. \ 25 \ mod \ 8)\)

\((x + 1)\)\((x - 1)\) 可能會各有一部分的 \(p\) 的因子

  1. 費馬小定理

對於一個素數 \(p\), 有 \(a ^ {p - 1} \equiv 1 \ (mod \ p)\)

結合這兩個理論,我們就能夠開始我們的 \(Miller-Rabin\) 素性檢測

可以證明,正確性大概是 \(1 - 4 ^ {-k}\) , 其中 \(k\) 爲二次探測的次數

Pollard-Rho

不妨令 \(n\) 爲我們需要質因數分解的數字

先用 \(Miller-Rabin\) 算法判斷 \(n\) 是不是素數

然後考慮構建一個隨機函數 \(f(x) = x ^ 2 + c\) , 其中 \(c\) 爲隨機常數

然後考慮隨機函數值的差 \(d\)\(n\) 的最大公約數, 若 \((d, n) \ne 1\) , 則找到了公約數,\((d, n)\) 就是 \(n\) 的一個約數

其中隨機函數在 \(mod \ n\) 的意義下有可能出現環的情況, 此時用到 \(floyd\) 判環

然後考慮倍增地求 \((d, n)\) 的值, 節約時間, 但是考慮到判環的時候有可能多次錯過,所以不用 \(floyd\) 判環而是直接用暴力判環即可

歐拉函數

定義

在學歐拉函數和莫比烏斯函數之前,先不妨設\(n = {p_1}^{q_1} {p_2}^{q_2} \cdots {p_k}^{q_k}\)

\(\varphi(n)\)是歐拉函數,表示 \([1, n]\) 中與 \(n\) 互質的數的個數

\(\varphi(n) = n (1 - \dfrac{1}{p_1})(1-\dfrac{1}{p_2})\cdots(1-\dfrac{1}{p_k})\)

基本公式

\(\sum \limits_{d \mid n} \varphi(d) = n\)

\(Proof.\)

\[\sum\limits_{d \mid n}\varphi(n) =\sum\limits_{d \mid n} \varphi(\dfrac{n}{d}) = \sum\limits_{d \mid n} \sum\limits_{i = 1}^\frac{n}{d}[gcd(\dfrac{n}{d}, i) = 1]=\sum\limits_{d \mid n}\sum\limits_{i = 1}^n[gcd(n, i) = d] = \sum\limits_{i = 1}^n\sum\limits_{d \mid n}[gcd(n, i) = d] = \sum\limits_{i = 1}^n1 = n \]

莫比烏斯函數

定義

\(\mu(n)\)是莫比烏斯函數, 定義如下

\(\mu(n) = \begin{cases}1 & n = 1 \\ (-1)^k & max(q_1, \cdots , q_k) = 1 \\ 0 & otherwise \end{cases}\)

基本公式

\(\sum\limits_{d \mid n}\mu(d)=[n = 1], \sum\limits_{d \mid n} d \times \mu(\dfrac{n}{d}) = \varphi(n)\)

\(\varphi(n) = \sum\limits_{i = 1}^n[gcd(i, n) = 1] = \sum\limits_{i = 1}^n \sum\limits_{d \mid gcd(i, n)} \mu(d) = \sum\limits_{d \mid n}\mu(d)\dfrac{n}{d} = \sum\limits_{d \mid n} d\mu(\dfrac{n}{d})\)

莫比烏斯反演

\(F(n) = \sum\limits_{d \mid n} f(d)\), 則 \(f(n) = \sum\limits_{d \mid n}F(d) * \mu(\dfrac{n}{d})\)

篩法

基本概念

  • 積性函數

對於任意的兩個正整數 \(a \bot b\) 滿足 \(f(ab) = f(a) \times f(b)\)

  • 完全積性函數

對於任意的兩個正整數 \(a\), \(b\) 滿足 \(f(ab) = f(a) \times f(b)\)

  • 狄利克雷卷積

\(h(n) = \sum\limits_{d \mid n} f(d) g(\dfrac{n}{d})\), 稱 \(h(n)\)\(f(n)\)\(g(n)\) 的狄利克雷卷積

  • 一個定理

兩個積性函數的狄利克雷卷積得到的函數仍然是積性函數

線性篩

線性篩,也稱爲歐拉篩

大家都會,就不整理了吧

杜教篩

計算一類特定積性函數前綴和的算法,例如\(\varphi(n)\)

\[\sum\limits_{i = 1}^n \sum\limits_{d \mid i} \varphi(d) = \sum\limits_{d = 1}^n\varphi(d)\times \left\lfloor\dfrac{n}{d}\right\rfloor = \sum\limits{d = 1}^n \sum\limits_{i = 1}^\frac{n}{d}\varphi(i) \]

\[\sum_{i=1}^{n} \varphi(i)=\sum_{i=1}^{n} \sum_{d \mid i} \varphi(d)-\sum_{d=2}^{n} \sum_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor} \varphi(i)=\frac{n(n+1)}{2}-\sum_{d=2}^{n} \sum_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor} \varphi(i) \]

所以可以從 \(n\) 遞歸到 \(\left\lfloor\frac{n}{i}\right\rfloor\),衆所周知總共只有 \(\sqrt{n}\) 個結果,用記憶化搜索複雜度是 \(O(n^\frac{3}{4})\),如果預處理前 \(n^\frac{2}{3}\) 的結果再記憶化複雜度就變成 \(O(n^{\frac{2}{3}})\)

\(e.g.\) 給定一個 \(n\), 求 \(\sum\limits_{i = 1}^n\mu(in)\), 其中 \(1 \leqslant n \leqslant 10^9\)

\(Solution:\)

\(F(n, m) = \sum\limits_{i = 1} ^ m \mu(i n)\), 則有:

\(F(n, m) = \sum\limits_{i = 1} ^ m \mu(i n) = \sum\limits_{i = 1}^m \mu(i) \mu(n) [gcd(i, n) = 1] = \mu(n) \sum\limits_{i = 1} ^ m\mu(i)\sum\limits_{d \mid gcd(i, n)} \mu(d)\)

\(F(n, m) = \mu(n) \sum\limits_{d \mid n}\mu(d) \sum\limits_{i = 1}^{\left\lfloor\frac{m}{d}\right\rfloor}\mu(id) = \mu(n) \sum\limits_{d \mid n}\mu(d)F(d, {\left\lfloor\dfrac{m}{d}\right\rfloor})\)

\(n = 1\)時用杜教篩求出,遞歸地去做, 複雜度大概是 \(O(n ^ {\frac{2}{3}})\)

歐幾里得算法

\(gcd(a, b) = gcd(b, a \ mod \ b)\)

\(lcm(a, b) = \dfrac{a \times b}{gcd(a, b)}\)

裴蜀定理

給定不全爲 \(0\) 的整數 \(a, b\) , 存在整數 \(x, y\) 使得 \(ax + by = gcd(a, b)\)

\(e.g. \ CF510D \ Fox \ And \ Jumping\)

給出 \(n\) 張卡片,分別有 \(l_i\)\(c_i\)

在一條無限長的紙帶上,你可以選擇花 \(c_i\) 的錢來購買卡片 \(i\),從此以後可以向左或向右跳 \(l_i\) 個單位。問你至少花多少元錢才能夠跳到紙帶上全部位置。若不行,輸出 \(-1\)

\(Solution.\)

考慮整張紙帶都能走, 那麼我們就要使選定的卡片通過互相加減來變成 \(1\), 這樣我們就能夠走完整張紙帶

依據裴蜀定理即得: \(ax + by = gcd(a, b)\) , 當 \(a \bot b\) 時有 \(gcd(a, b) = 1\)

所以我們只要用 堆優化dijkstra 求解答案即可, 每次枚舉 \(l_1, l_2, \cdots , l_n\) 來轉移到 \(gcd(dis[u], l_i)\) 即可

需要注意的是要用 unordered_map 來維護 dis[] 數組

擴展歐幾里得算法

常用來求 \(ax + by = gcd(a, b)\) 的一組可行解

\(ax_1 + by_1 = gcd(a, b)\)

\(bx_2 + (a \ mod \ b) y_2 = gcd(b, a \ mod \ b)\)

\(\because gcd(a, b) = gcd(b, a \ mod \ b), \therefore ax_1 + by_1 = bx_2 + (a \ mod \ b) y_2\)

\(\because a \ mod \ b = a - {\left\lfloor\dfrac{a}{b}\right\rfloor} \times b, ax_1 + by_1 = bx_2 + (a - {\left\lfloor\dfrac{a}{b}\right\rfloor} \times b) y_2\)

展開移項可得:

\(x_1 = y_2, y_1 = x_2 - {\left\lfloor\dfrac{a}{b}\right\rfloor}y_2\)

終止條件爲 \(x = 1, y = 0\), 可以遞歸求解

類歐幾里得算法

使用一個類似於輾轉相除法的方法遞歸地做函數求和的過程

\(e.g.\) 給定 \(a, b, c, n\) 求解\(\sum\limits_{i = 0}^n{\left\lfloor\dfrac{ai + b}{c}\right\rfloor}\), 其中 \(n <= 10^9\)

\(Solution.\)

核心思想是分類討論然後將情況分開計算

定義 \(F(a, b, c, n) = \sum\limits_{i = 0}^n{\left\lfloor\dfrac{ai + b}{c}\right\rfloor}\)

\(a \geqslant c, b \geqslant c\)時,有:

\(F(a, b, c, n) = \sum\limits_{i = 0}^n{\left\lfloor\dfrac{ai + b}{c}\right\rfloor} = \sum\limits_{i = 0}^n{\left\lfloor\dfrac{({\left\lfloor\frac{a}{c}\right\rfloor} \times c + a \ mod \ c)i + ({\left\lfloor\frac{b}{c}\right\rfloor} \times c + b \ mod \ c)}{c}\right\rfloor} = \dfrac{n(n + 1)}{2} {\left\lfloor\dfrac{a}{c}\right\rfloor} + (n + 1){\left\lfloor\dfrac{b}{c}\right\rfloor} + f(a \ mod \ c, b \ mod \ c, c, n)\)

中國剩餘定理

  1. 計算所有模數的積 \(n\) ;

  2. 對於第 \(i\) 個方程:

  • 計算 \(m_{i}=\frac{n}{n_{i}}\)

  • 計算 \(m_{i}\) 在模 \(n_{i}\) 意義下的 逆元 \(m_{i}^{-1}\)

  • 計算 \(c_{i}=m_{i} m_{i}^{-1}\) (不要對 \(n_{i}\) 取模)

  1. 方程組的唯一解爲: \(\quad a=\sum\limits_{i=1}^{k} a_{i} c_{i} \quad(\bmod \ n)\)

\(Proof\)

找們需要證明上面算法計算所得的 \(a\) 對於任意 \(i=1,2, \cdots, k\) 滿足 \(a \equiv a_{i}\left(\bmod \ n_{i}\right) \circ\)\(i \neq j\) 時,有 \(m_{j} \equiv 0\left(\bmod \ n_{i}\right)\), 故 \(c_{j} \equiv m_{j} \equiv 0\left(\bmod \ n_{i}\right) \cdot\) 又有
\(c_{i} \equiv m_{i}\left(m_{i}^{-1} \bmod \ n_{i}\right) \equiv 1\left(\bmod \ n_{i}\right)\), 所以我們有 :

\(\begin{aligned} a & \equiv \sum_{j=1}^{k} a_{j} c_{j} & &\left(\bmod \ n_{i}\right) \\ & \equiv a_{i} c_{i} & &\left(\bmod \ n_{i}\right) \\ & \equiv a_{i} m_{i}\left(m_{i}^{-1} \bmod \ n_{i}\right) & &\left(\bmod \ n_{i}\right) \\ & \equiv a_{i} & &\left(\bmod \ n_{i}\right) \end{aligned}\)

即對於任意 \(i=1,2, \cdots, k\), 上面算法得到的 \(a\) 總是滿足 \(a \equiv a_{i}\left(\bmod n_{i}\right)\), 即證明了解 同餘方程組的算法的正確性。
因爲我們沒有對輸入的 \(a_{i}\) 作特殊限制,所以任何一組輸人 \(\left\{a_{i}\right\}\) 都對應一個解 \(a\)
另外,若 \(x \neq y\), 則總存在 \(i\) 使得 \(x\)\(y\) 在模 \(n_{i}\) 下不同餘。
故係數列表 \(\left\{a_{i}\right\}\) 與解 \(a\) 之間是一一映射關係,方程組總是有唯一解。

擴展中國剩餘定理

考慮兩個同餘方程的情況

\[\begin{cases}x \equiv c_1 \ (mod \ m_1) \\ x \equiv c_2 \ (mod\ m_2) \\ \cdots \\ x \equiv c_r \ (mod \ m_r) \end{cases}\]

其中 \(m_1, m_2, \cdots, m_r\) 存在 \(m_{k1}\)\(m_{k2}\) 不互質

因爲\(CRT\)要求模數互質,所以這個問題我們並不能用 \(CRT\) 來做

從簡單的入手,我們考慮兩個方程的情況

\[\begin{cases}x \equiv c_1 \ (mod \ m_1) \\ x \equiv c_2 \ (mod\ m_2) \\ \end{cases}\]

可以轉化爲:

\(x = c_1 + m_1 k_1\)

\(x = c_2 + m_2 k_2\)

所以 \(c_1 + m_1 k_1 = c_2 + m_2 k_2\)

移項得 \(c_2 - c_1 = m_1 k_1 - m_2 k_2\)

不妨用 \((m_1, m_2)\) 來表示 \(m_1, m_2\) 的最大公約數

由裴蜀定理得 \((m_1, m_2) \mid (c_2 - c_1)\), 否則方程無解

方程兩邊移項後同時除上 \((m_1, m_2)\)

\(\dfrac{m_1}{(m_1, m_2)}k_1 = \dfrac{c_2 - c_1}{(m_1, m_2)} + \dfrac{m_2}{(m_1, m_2)}k_2\)

\(\dfrac{m_1}{(m_1, m_2)}k_1 \equiv \dfrac{c_2 - c_1}{(m_1, m_2)} \ (mod \ \dfrac{m_2}{(m_1, m_2)})\)

\(inv(a, b)\) 表示 \(a\) 在模 \(b\) 意義下的逆元

\(k_1 \equiv inv(\dfrac{m_1}{(m_1, m_2)}, \dfrac{m_2}{(m_1, m_2)}) \times \dfrac{c_2 - c_1}{(m_1, m_2)} \ (mod \ \dfrac{m_2}{(m_1, m_2)})\)

展開得 : \(k_1 = inv(\dfrac{m_1}{(m_1, m_2)}, \dfrac{m_2}{(m_1, m_2)}) \times \dfrac{c_2 - c_1}{(m_1, m_2)} + y \times \dfrac{m_2}{(m_1, m_2)}\)

又因爲 \(x = c_1 + m_1 k_1\)

所以 \(x = inv(\dfrac{m_1}{(m_1, m_2)}, \dfrac{m_2}{(m_1, m_2)}) \dfrac{m_1}{(m_1, m_2)}(c_2 - c_1) + \dfrac{m_1 m_2}{(m_1, m_2)}y + c_1\)

\(x \equiv inv(\dfrac{m_1}{(m_1, m_2)}, \dfrac{m_2}{(m_1, m_2)}) \dfrac{m_1}{(m_1, m_2)}(c_2 - c_1) + c_1 \ (mod \ \dfrac{m_1 m_2}{(m_1, m_2)})\)

這個式子可以理解爲 \(x \equiv c \ (mod \ M)\)

其中 \(c = ((inv(\dfrac{m_1}{(m_1, m_2)}, \dfrac{m_2}{(m_1, m_2)}) \dfrac{(c_2 - c_1)}{(m_1, m_2)}) \ mod \ \dfrac{m_2}{(m_1, m_2)}) \times m_1 + c_1\)

\(M = \dfrac{m_1 m_2}{(m_1, m_2)}\)

擴展到多個方程的話就拿現有已考慮過的方程一個一個與未考慮的方程進行計算

費馬小定理

對於\(gcd(a, p) = 1\), 且\(p\)爲質數

\[a ^ p \equiv a \ (mod \ p) \]

\(Proof \ 1.\)

引理1. 若\(n \nmid (a - b) , x > 0, gcd(x, n) = 1\), 則\(n \nmid x(a - b)\)

證明: 該結論顯然

引理2. 對於集合\(A = \{1, \cdots {p - 1}\}\), 則集合 \(\{ k \in A, gcd(a, p) = 1, k \times a \ mod \ p \}\)\(A\) 等價

證明: 對於互異的 \(k\) 來說, \(k \times a\)\(mod \ p\) 意義下互異, 由引理1可得 \(\because p \nmid (k1 - k2),a > 0, gcd(a, p) = 1 \therefore p \nmid a \times (k1 - k2)\)

由引理2可得 \(\because \prod \limits_{i = 1}^{p - 1}(i \times a) \equiv \prod \limits_{i = 1}^{p - 1}i \times a ^ {p - 1}, \prod \limits_{i = 1}^{p - 1}i \equiv \prod \limits_{i = 1}^{p - 1}i \times a ^ {p - 1} \ (mod \ p)\)

\(\therefore a^{p - 1} \equiv 1 \ (mod \ p)\)

\(Proof \ 2.\)

引理1: 對於二項式係數\(\dbinom{p}{n}\), 當\(p\)爲質數且\(n = 1 \cdots {p - 1}, p \mid \dbinom{p}{n}\)

證明: 當\(n = 1 \cdots {p - 1}\) 時, \(\because \dbinom{p}{n} = \dfrac{p!}{n!(n-p)!}\)\(p\) 最後不會被分母消去, \(\therefore n = 1 \cdots {p - 1}, p \mid \dbinom{p}{n}\)

考慮 \((b + 1) ^ p\) 展開

\(\begin{aligned} (b + 1) ^ p & = \dbinom{p}{p} b ^ p + \dbinom{p}{p - 1} b ^ {p - 1} + \cdots + \dbinom{p}{1} b ^ 1 + \dbinom{p}{0} b ^ 0 \\ & \equiv \dbinom{p}{p} b ^ p + \dbinom{p}{0} b ^ 0 & (mod \ p) \\ & \equiv b ^ p + 1 &(mod \ p) \\ & \equiv (b - 1) ^ p + 1 + 1 &(mod \ p)\\ & \equiv (b - 2) ^ p + 1 + 1 + 1 &(mod \ p) \\ & \cdots \\ & \equiv \begin{matrix}\underbrace{1 + 1 + \cdots + 1 + 1}\\b + 1\end{matrix} & (mod \ p) \\ & \equiv b + 1 & (mod \ p) \end{aligned}\)

\(b = a - 1\), 則有 \(a ^ p \equiv a \ (mod \ p)\)

歐拉定理

對於\(a \bot p\)

\[a ^ {\varphi(p)} \equiv 1 \ (mod \ p) \]

擴展歐拉定理

\(a^b \equiv \begin{cases}a ^ {b \ mod \ \varphi(p)}&gcd(a, p) = 1 \\ a ^ b & gcd(a, p) \ne 1, b < \varphi(p) & (mod \ p) \\ a ^ {\varphi(p) + b \ mod \ \varphi(p)} & gcd(a, p) \ne 1, b \geqslant \varphi(p) \end{cases}\)

威爾遜定理

\[(p - 1)! \equiv -1 \ (mod \ p) \Longleftrightarrow P \ is \ a \ prime. \]

盧卡斯定理

\[\dbinom{n}{m} \% p = \dbinom{n \% p}{m \% p} \dbinom{ \left\lfloor\dfrac{n}{p}\right\rfloor }{ \left\lfloor\dfrac{m}{p}\right\rfloor } \% p \]

擴展盧卡斯定理

\(\dbinom{n}{m} \ mod \ p\) 的值

不妨令 \(x = \dbinom{n}{m}\)

我們可以先對模數進行質因數分解:

\(p = p_1^{k_1}p_2^{k_2}p_3^{k_3} \cdots p_i^{k_i}\)

有同餘方程:

\(\begin{cases}x \equiv a_1 & (mod \ p_1^{k_1}) \\ x \equiv a_2 & (mod \ p_2^{k_2}) \\ \cdots \\ x \equiv a_i & (mod \ p_i^{k_i}) \end{cases}\)

我們可以用 \(CRT\) 將上述同餘方程合併起來, 於是我們考慮怎麼求 \(a_i\) 的值

考慮 \(n! \ mod \ p_i^{k_i}\) 的求法:

可以觀察到有 \(\left\lfloor\dfrac{n}{p_i}\right\rfloor! \times p_i \times 1 \times 2 \times \cdots \times (p_i - 1) \times (p_i + 1) \times \cdots n\)

然後我們可以可以遞歸處理這個 \(\left\lfloor\dfrac{n}{p_i}\right\rfloor!\) , 至於 \(p_i\) 的話我們考慮提前把次數預處理出來,然後後面再乘即可

除此之外我們可以發現: 在 \(mod \ p_i^{k_i}\) 的意義下, \(\prod\limits_{i = 1}^{p_i^{k_i} - 1} i \equiv \prod\limits_{i = p_i^{k_i} + 1}^{2p_i^{k_i} - 1} i \ (mod \ p_i^{k_i})\)

即只需要預處理一下 \(\prod\limits_{i = 1}^{p_i^{k_i} - 1} i\), 然後快速冪一下就行了

組合數學

關於這個我覺得能夠講一年

基本定義

規定 \(0! = 1\)

\[C(n, r) = \dfrac{P(n, r)}{r!} = \dfrac{n!}{(n - r)! r!} \]

\[P(n, r) = \dfrac{n!}{(n - r)!} \]

\[Q(n, r) = \dfrac{P(n, r)}{r} = \dfrac{n!}{r(n - r)!} \]

基本定理

定理1 - 1 : 過\(n\)個有標誌頂點的樹的數目爲\(n ^ {n - 2}\) (\(Cayley\)定理)

定理1 - 2 : 在 \(n\) 個不同元素中取 \(r\) 個作允許重複的組合, 其組合數爲 \(\dbinom{n + r - 1}{r}\)

定理1 - 3 : 從 \(A = {1, 2, \cdots , n}\) 中取 \(r\) 個作不相鄰的組合, 其組合數爲 \(\dbinom{n - r + 1}{r}\)

定理1 - 4 : 線性方程 \(x_1 + x_2 + \cdots + x_n = b\) 的非負整數解個數爲 \(\dbinom{n + b - 1}{b}\)

組合數奇偶性

\(\dbinom{n}{k} \ mod \ 2 \equiv \begin{cases} 1 & {n \& k = k} \\ 0 & otherwise \end{cases}\)

二項式定理

\[(x + y) ^ n = \sum\limits_{i = 0}^n\dbinom{n}{i} x^i y ^ {n - i} \]

Pascal公式

\[\dbinom{n}{m} = \dbinom{n - 1}{m - 1} + \dbinom{n - 1}{m} \]

圖論中的組合數學公式

\[\sum\limits_{i = u}^v \dbinom{i}{k} = \dbinom{v + 1}{k + 1} - \dbinom{u}{k + 1} \]

簡單組合數學公式

  1. \[\dbinom{m + n}{m} = \dbinom{m + n}{n} \iff \dbinom{n}{r} = \dbinom{n}{n - r} \]

  2. \[\dbinom{n}{r} = \dbinom{n - 1}{r} + \dbinom{n - 1}{r - 1} \]

  3. \[\dbinom{n + r + 1}{r} = \dbinom{n + r}{r} + \dbinom{n + r - 1}{r - 1} + \cdots + \dbinom{n}{0} \]

  4. \[\dbinom{n}{l} \dbinom{l}{r} = \dbinom{n}{r} \dbinom{n - r}{l - r}, l \geqslant r \]

  5. \[(x + y) ^ m = \dbinom{m}{0}x^m + \dbinom{m}{1}x^{m - 1}y + \cdots + \dbinom{m}{m}y^m \]

  6. \[\dbinom{m}{0} + \dbinom{m}{1} + \cdots + \dbinom{m}{m} = 2^m \]

  7. \[\dbinom{n}{0} - \dbinom{n}{1} + \dbinom{n}{2} -\cdots \pm \dbinom{n}{n} = 0 \]

  8. \[\dbinom{m + n}{r} = \dbinom{m}{0} \dbinom{n}{r} + \dbinom{m}{1} \dbinom{n}{r - 1} + \cdots + \dbinom{m}{r} \dbinom{n}{0} \]

  9. \[\dbinom{m + n}{m} = \dbinom{m}{0} \dbinom{n}{0} + \dbinom{m}{1} \dbinom{n}{1} + \cdots + \dbinom{m}{m} \dbinom{n}{m}, m \leqslant n \]

  10. \[\dbinom{r}{r} + \dbinom{r + 1}{r} + \cdots + \dbinom{n}{r} = \dbinom{n + 1}{r + 1} \]

  11. \[\dbinom{2n}{n} = \dbinom{n}{0} ^ 2 + \dbinom{n}{1} ^ 2 + \cdots + \dbinom{n}{n} ^ 2 \]

  12. \[P^n_r = n P^{n - 1}_{r - 1} = (n - r + 1) P^n_{r - 1} = \dfrac{n}{n - r}P^{n - 1}_r \]

  13. \[P^{n + 1}_r = P^n_r + rP^n_{r - 1} = r! + r(P^n_{r - 1} + P^{n - 1}_{r - 1} + \cdots + P^r_{r - 1}) \]

  14. \[\sum\limits_{k = 1}^nk\dbinom{n}{k} = n 2 ^ {n - 1} \]

  15. \[\dbinom{n + 1}{2} + 2\dbinom{n + 1}{3} = \sum\limits_{k = 1}^n k ^ 2 \]

  16. \[\dbinom{n}{r} = \dfrac{n}{r} \dbinom{n - 1}{r - 1}, 1 \leqslant r \leqslant n \]

  17. \[\dbinom{n}{r} = \dfrac{n - r + 1}{r} \dbinom{n}{r - 1}, 1 \leqslant r \leqslant n \]

  18. \[\dbinom{n}{r} = \dfrac{n}{n - r} \dbinom{n - 1}{r}, 0 \leqslant r \leqslant n \]

  19. \[\dbinom{m}{0}\dbinom{m}{n} + \dbinom{m}{1} \dbinom{m - 1}{n - 1} + \cdots + \dbinom{m}{n} \dbinom{m - n}{0} = 2 ^ n \dbinom{m}{n} \]

  20. \[\dbinom{n}{0} 2 ^ n + \dbinom{n}{2} 2 ^ {n - 2} + \cdots + \dbinom{n}{q} 2 ^ {n - 1} = \dfrac{3 ^ n + 1}{2}, q = 2[\dfrac{n}{2}] \]

原根和階

\(a \bot m\) , 使 \(a^l \equiv 1 \ (mod \ m)\) 成立的最小的 \(l\) , 稱爲 \(a\) 關於模 \(m\) 的階, 記爲 \(ord_ma\)

原根

\(g \bot m\) ,若 \(ord_mg = \varphi(m)\), 則稱 \(g\)\(m\) 的一原根

也可表述爲 : \(g\)\(m\) 的原根當且僅當集合 \(\{ g, g^2, \cdots , g^{\varphi(m)}\}\) 構成模 \(m\) 的一個既約剩餘系

BSGS

可用於求解 \(a \bot p\) 時,滿足 \(a ^ x \equiv b \ (mod \ p)\) 的最小的 \(x\)

我們不妨令 \(x = A \times \left\lceil\sqrt{p}\right\rceil - B\)

則有 \(a ^ {A \times \left\lceil\sqrt{p}\right\rceil - B} \equiv b \ (mod \ p)\)

移項得 \(a ^ {A \times \left\lceil\sqrt{p}\right\rceil} \equiv b \times a ^ B \ (mod \ p)\)

其中 \(1 \le A, B \le \sqrt{p}\), 於是我們可以枚舉 \(B\) 的取值,然後把關於模 \(p\) 意義下的餘數用 map 存下來 ( 或者用Hash_Table更好 )

然後枚舉 \(A\) , 計算 \(a ^ {A \times \left\lceil\sqrt{p}\right\rceil}\) 在模 \(p\) 的意義下的餘數, 然後再看 map 中有沒有對應的 \(B\), 如果存在,輸出 \(A \times \left\lceil\sqrt{p}\right\rceil - B\) 即可

當然該方法能夠求解所有滿足條件的 \(x\)

EXBSGS

考慮 \(gcd(a, p) > 1\) 的情況, 此時不滿足 \(bsgs\) 中的互質條件, 考慮怎樣轉換題目

我們考慮將原來的式子進行轉換

\(a ^ x \equiv b \ (mod \ p) \Rightarrow a ^ x + p \times k = b\)

不妨令 \(gcd(a, p) = d_0\) , 則有 \(\dfrac{a ^ x}{d_0} + \dfrac{k}{d_0} \times p = \dfrac{b}{d_0}\)

然後我們可以繼續考慮 \(d_i = gcd(\frac{b}{\prod\limits_{i = 0}^{i - 1}d_{i}}, a)\)

不妨令 \(D = \prod\limits_{i = 0}^{i}d_i\)

最後將式子轉化成了 \(\dfrac{a ^ x}{D} + \dfrac{k}{D} \times p = \dfrac{b}{D}\)

\(\dfrac{a ^ x}{D} \equiv \dfrac{b}{D} \ (mod \dfrac{p}{D} )\)

\(D \nmid p\) , 則該方程無解

此時即可把這個問題轉化爲 \(BSGS\) 求解

一些概念及定義

完全剩餘系

\(\{ 0, 1, \cdots, p - 2, p - 1 \}\) 構成的集合稱爲模 \(p\) 的一個完全剩餘系

既約剩餘系

\(p\) 的一個既約剩餘係指的是完全剩餘系中與 \(p\) 互質的元素組成的集合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章