数学问题
初等数论
-
\(a | b\):\(a\) 整除 \(b\),也就是 \(a\) 是 \(b\) 的因数,\(b\) 是 \(a\) 的倍数,\(b = ka\)
-
取模 取整:\(b = ka + r\),其中 \(0 ≤ r < a\),则称 \(⌊\frac{b}{a}⌋ = k\),\(b \mod a = r\)。
-
整数唯一分解定理:每个整数 \(n\) 可以唯一的写成 \(\prod p_i^{k_i}\) 的形式,其中 \(p_i\) 是第 \(i\) 个质数。
-
$ lcm (a, b) \times gcd(a, b) = a \times b \(,(本质:\)max(a,b)=a+b-min(a,b)$)
-
\(Min-Max\) 容斥:\(\max_{x∈S} x = \sum_{∅≠T⊆S}(-1)^{|T|-1} \min _{x∈S}x\)
-
扩展 \(Min-Max\) 容斥:\(kth \ max(S) = \sum_{∅≠T⊆S}(-1)^{|T|-k} C_{k-1}^{|T|-1} min(T)\)
-
\(lcm(s)=\prod_{∅≠T⊆S} gcd(T)^{{(-1)}^{|T|-1}}\)
-
\(gcd(x^a -1 , x^b -1 )=x^{gcd(a,b)-1}\)
-
\(Fibonacci\) 数列相邻两项互质。\(F(n) = F(m)F(n − m − 1) + F(m − 1)F(n − m)\)
-
对于斐波那契数列,\(gcd(F(a), F(b)) = F(gcd(a, b))\)
-
费马小定理:当 \(p\) 是质数,\(p ∤ a\) 时,\(a^p−1 ≡ 1 (mod\) \(p)\)
-
扩展欧拉定理:\(当 gcd(a, m)≠1 时\),有 \(a^k ≡ a^{min (k,k\mod φ(m)+φ(m))}(mod\) \(m)\)
Miller-Rabin
Almost \(O(\log n)\) 近似判断一个数是不是质数。
如果 \(p\) 是质数,设 \(p − 1 = d × 2^r\),则对于 \(a < p\),有
\(a^d ≡ 1 (mod\) \(p) ∨ ∀0 ≤ i < r, a^{d\times 2^i}≡ −1 (mod\) \(p)\)
在 \(long\) \(long\) 范围内,取 \(a ∈ {2, 3, 5, 7, 13, 29, 37, 89}\) 依次检验,保证不出错
整除分块
一般用于对于所有的 \(1 ≤ i ≤ n\),处理关于 \(⌊\frac{n}{i}⌋\) 的相关问题。
算法基于 \(⌊\frac{n}{i}⌋\) 只有 \(O(√n)\) 种取值。
流程如下,初始 \(l = 1\)
- 这一段的整除值计算为 \(val = ⌊\frac{n}{l}⌋\)
- 这一段的右端点为 \(r = ⌊\frac{n}{val}⌋\)
- 处理完 \([l,r]\) 的信息后,\(l ← r + 1\),继续处理下一段,超过 \(n\) 就退出。
博弈论
\(n\) 堆石子,分别有 \(a_1, a_2, · · · , a_n\) 个,每次从某一堆中拿走若干个,两人轮流操作,不能操作者输。
必胜态:\(a_1 ⊕ a_2 ⊕ · · · ⊕ a_n ≠ 0\)
对于阶梯 Nim 游戏,即有 每次从第 \(i\) 堆中拿走若干个放进第 \(i − 1\) 堆,看作只保留所有奇数堆进行的 Nim 游戏解决。
Anti-Nim 游戏:
先手必胜的条件为:
-
- 每堆都是 \(≤ 1\) 个,异或和为 0
-
- 存在某堆 \(> 1\) 个,异或和不为 0