极值组合笔记——多项式方法
代数中我们熟知,在域 \(F\) 中
i. 非零 \(d\) 次一元多项式最多有 \(d\) 个根
ii. 对集合 \(S\subset F\),存在 \(|S|\) 次的非零一元多项式 \(f(x)\),使 \(\forall x\in S,f(x)=0\)
因此
- 如果我们想得到集合 \(S\) 大小的上界 \(d\),可寻找次数不超过 \(d\) 的非零多项式 \(f\) 使 \(f\) 在 \(S\) 上为 \(0\)
- 如果我们想得到集合 \(S\) 大小的下界 \(d\),只要知道在 \(S\) 上为 \(0\) 的低于 \(d\) 次多项式只有 \(0\) 多项式
书里提到的多项式方法大概就是以上两种,但会推广到多元多项式上。
注意
- \(F[x_1,\cdots,x_n]\) 表示 \(n\) 元多项式环
- 多项式的次数 \(\deg\) 为最高项的次数和,特别地 \(\deg 0=-\infty\)
- 一个多项式是 \(0\) 多项式是说其所有系数都是 \(0\),但是在有限域上,非 \(0\) 多项式作为函数也可能等于 \(0\) 函数
两个结论在多元情形的推广
ii.
引理 16.1. 给定集合 \(E \subset F^n, |E| < {n+d\choose d}\),存在次数不超过 \(d\) 的非零多项式 \(f\in F[x_1, \cdots, x_n]\) 在 \(E\) 上为 \(0\)。
证明思路是,次数不超过 \(d\) 的非零 \(n\) 元多项式所构成的 \(F\) 上的线性空间维数是 \({n+d\choose d}\)(练习 13.22),而 \(E\to F\) 函数所构成的空间 \(F^E\) 的维数是 \(|E|<{n+d\choose d}\)。因此,次数不超过 \(d\) 的非零多项式 到 \(E\) 上的多项式函数 的映射是高维向低维的线性映射,肯定不是单射。
i.
引理 16.2 对有限域 \(|F|=q>d\),\(d\) 次多项式 \(f\in F[x_1, \cdots, x_n]\) 在 \(F^n\) 中最多有 \(dq^{n-1}\) 个根。
引理 16.3 (DeMillo–Lipton–Schwartz–Zippel lemma). 对 \(S\subset F,|S|>d,d\) 次多项式 \(f\in F[x_1, \cdots, x_n]\) 在 \(S^n\) 中最多有 \(d|S|^{n-1}\) 个根。
证明思路是,对 \(d\) 和 \(n\) 归纳,把 \(f(x_1,\cdots,x_n)\) 表为 \(\sum_{j=0}^t f_j(x_1,\cdots,x_{n-1})x_n^j\),按照 \(f_t(x_1,\cdots,x_{n-1})\) 是否为 \(0\) 分类讨论,然后利用一元情形。
定理 16.8 (Combinatorial Nullstellensatz). 对 \(d\) 次多项式 \(f\in F[x_1, \cdots, x_n]\),\(t_1+\cdots+t_n=d\) 且 \(x_1^{t_1}\cdots x_n^{t_n}\) 是 \(f\) 的 \(d\) 次项之一,\(S_1,\cdots,S_n\subset F, |S_1|>t_1,\cdots,|S_n|>t_n\),那么 \(\exists x \in S_1\times\cdots\times S_n,f(x)\ne 0\)。
只要证 \(|S_1|=t_1+1,\cdots,|S_n|=t_n+1\) 的情形。
反证,假设 \(\forall x\in S_1\times\cdots\times S_n,f(x)=0\)。设 \(g_i(x_i)=\prod_{s\in S_i}(x_i-s)\),则可以证明,对 \(i\) 取 \(1,\cdots,n\) 存在次数不超过 \(d-t_i-1\) 的 \(h_i(x_1,\cdots,x_n)\),使 \(f(x_1,\cdots,x_n)=\sum_{i=1}^n h_i(x_1,\cdots,x_n)g_i(x_i)\)(这个结论就叫 Nullstellensatz)。原因是可以使 \(f\) 一直减去 \(g_i\) 的倍数而保持在 \(S_1\times\cdots\times S_n\) 上为 \(0\) 的性质,类似一元的多项式取模。通过这种操作可以得到余下的 \(r(x_1,\cdots,x_n)\),使其在每个 \(x_i\) 的次数不超过 \(t_i\),并且在 \(S_1\times\cdots\times S_n\) 上也是为 \(0\)。而这样的 \(r(x_1,\cdots,x_n)\) 肯定就是 \(0\) 多项式(练习 16.5)。
而容易发现等式右侧不可能有 \(f\) 有的 \(x_1^{t_1}\cdots x_n^{t_n}\) 项。矛盾。
例
判定多项式是否为零的随机算法
在域 \(F\) 上,假设我们要判定次数为 \(d\) 的 \(n\) 元多项式 \(f\) 是否为 \(0\),注意只能查询点值而不能知道系数。
取 \(S\subset F\),我们知道,假若 \(f\) 非 \(0\),只要等概率取 \(S\) 中的点,它至少有(引理 16.3)\(1-\frac{d}{|S|}\) 的概率非 \(0\)。例如如果 \(|S|>2d\),那么只要在 log 次查询内就能高概率判断正确。
这个算法可用于下面的问题。
假设 Alice 有 \(a_0\cdots a_{n-1}\in\{0,1\}^n\),Bob 有 \(b_0\cdots b_{n-1}\in\{0,1\}^n\),他们想要判断他们的 01 串是不是一样。
存在不超过 \(1/n\) 错误率而只需传输 \(O(\log n)\) bit 的做法。
思路是取 \(n^2<p\le 2n^2\),改为判断 \(\mathbb F_p\) 上以分别以 \(a,b\) 为前 \(n\) 项系数的多项式是不是一样。
“有限域挂谷”

Kakeya 集合是欧式空间中包含任何方向的单位线段的点集。
Kakeya 猜想,说的是 \(\mathbb R^n\) 中 Kakeya 集合 Hausdorff 维数为 \(n\)。
“有限域 Kakeya 集合”:\(F\) 是有限域,\(K\) 是 \(F^n\) 上的“Kakeya 集合”,当且仅当 \(\forall v\in F^n,\exists w\in F^n,\{w+tv|t\in F\}\subset K\)。
“有限域 Kakeya 猜想”,则是说对 \(F^n\),\(F\) 是有限域,存在和 \(F\) 无关的 \(c(n)>0\),任何“Kakeya 集合” \(K\) 的大小 \(|K|>c(n)|F|^n\)。
定理 16.6. 对有限域 \(F\),\(K\) 是 \(F^n\) 的“Kakeya 集合”,一定有 \(|K|\ge \frac{|F|^n}{n!}\)。
假设不然,设 \(q=|F|\),则 \(|K|<\frac{|F|^n}{n!}\le {n+q-1\choose n}\),(引理 16.1)存在次数不超过 \(q-1\) 的非零多项式 \(f\in F[x_1, \cdots, x_n]\) 在 \(K\) 上为 \(0\)。
设 \(d=\deg f\),齐次的 \(f_d\) 为 \(f\) 的所有 \(d\) 次项之和,显然 \(f_d\) 非 \(0\)。
对方向 \(v\in F^n,v\ne 0\),由定义 \(\exists w\in F^n,\{w+tv|t\in F\}\subset K\),因此 \(\forall t\in F,f(w+tv)=0\)。把 \(f(w+tv)\) 看作是关于 \(t\) 的多项式,由于它的次数也不超过 \(q-1\),根据一元多项式的结论,这是个零多项式,因此 \(0=[t^d]f(w+tv)=f_d(v)\)。由 \(v\) 的任意性,\(f_d(v)\) 在 \(F^n\) 上为 \(0\)。(引理 16.2)所以 \(f_d\) 就是 \(0\) 多项式。矛盾。
积和式
矩阵 \(A\) 的积和式 \(\operatorname{per}(A)\) 的定义就是行列式的定义中去掉 \((-1)^{\sigma(p)}\)。
积和式好像没有行列式那么好的性质,但是有以下定理:
定理 16.10. \(A\) 是 \(n\) 维矩阵,\(\operatorname{per}(A)\ne 0\),\(\forall b\in F^n\),存在 \(A\) 的一些列,使得这些列加起来和 \(b\) 每维都不同。
构造多项式 \(f=\prod_{i=1}^n(\sum _{i=1}^n a_{i,j}x_j -b_i)\),则 \(\operatorname{per}(A)=[x_1\cdots x_n]f\)。利用 Combinatorial Nullstellensatz。
用仿射超平面覆盖超立方体
仿射超平面是 \(H = \{x ∈ \mathbb R^n| 〈a, x〉 = b\}\),其中 \(a\in \mathbb R^n,b\in \mathbb R\)。
定理 16.12. 如果 \(\mathbb R^n\) 中 \(m\) 个仿射超平面 \(H_1,\cdots,H_m\) 不经过原点,但它们的并覆盖 \(\{0,1\}^n\setminus \{0\}\),则 \(m\) 最小为 \(n\)。
\(m=n\) 的构造很容易。
假设存在 \(m< n\) 的 \(H_1,\cdots,H_m\) 符合要求,其中 \(H_j=\{x ∈ \mathbb R^n| 〈a_j, x〉 = 1\}\)。构造多项式 \(f=\prod_{j=1}^m(1-〈a_j, x〉)-\prod_{i=1}^n(1-x_{(i)})\)。利用 Combinatorial Nullstellensatz 推出矛盾。
正则子图
一个图是 \(d-\)正则的,当且仅当每个点度数都是 \(d\)。
定理 16.13. 对无自环(但可以有重边)的图 \(G\),质数 \(p\),如果 \(G\) 的平均度数至少为 \(2p-2\),但是最大度数至多为 \(2p-1\),则 \(G\) 有 \(p-\)正则的非空子图。
对每个边 \(e\) 有一个变量 \(x_e\),在 \(\mathbb Z_p\) 上构造 \(|E|\) 元多项式 \(f=\prod_{v\in V}(1-(\sum_{e:v\in e}x_e)^{p-1})-\prod _{e\in E}(1-x_e)\)。利用 Combinatorial Nullstellensatz。其中 \(p-1\) 次方那里利用了费马小定理。
Sum-sets
这里定义 \(A+B=\{a+b|a\in A,b\in B\}\)。
定理 16.14 (Cauchy-Davenport). \(p\) 是质数,\(A,B\) 是 \(\mathbb Z_p\) 的两个非空子集,那么 \(|A+B|\ge\min(p,|A|+|B|-1)\)。
\(|A|+|B|>p\) 的情形是容易的。下面只要证 \(|A|+|B|\le p\) 时 \(|A+B|\ge |A|+|B|-1\)。
假设 \(|A+B|\le |A|+|B|-2\),那就存在大小为 \(|A|+|B|-2\) 的子集 \(C\) 使得 \(A+B\subset C\)。我们想要导出矛盾,所以我们希望 \(\exists a\in A,b\in B,\forall c\in C,a+b\ne c\)。翻译一下就是 \(\exists a\in A,b\in B,f(a,b)=\prod_{c\in C}(a+b-c)\ne 0\),其中 \(f\) 是 \(\mathbb Z\) 上的多项式。就可以用 Combinatorial Nullstellensatz。
Zero-sum sets
定理 16.9 (Chevalley–Warning). \(p\) 是质数,\(f_1,\cdots,f_m\in \mathbb F_p[x_1,\cdots,x_n]\)。如果 \(\sum_{j=1}^m \deg f_i <n\),那么这 \(m\) 个多项式在 \(\mathbb F_p^n\) 上的公共零点个数是 \(p\) 的倍数。
大概证法是因为公共零点个数等于 \(\sum_{x\in \mathbb F_p^n} \prod_{j=1}^m(1-f_j(x)^{p-1})\),要证它模 \(p\) 同余 \(0\)。因为求积号是一个 \(n\) 元、小于 \((p-1)n\) 次的多项式,所以对多项式的每一项都有一个元的次数小于 \(p-1\)。而由于求和号把所有的都枚举了一遍,利用 \(0\le t<p-1 \implies\sum_{x\in \mathbb F_p} x^t\equiv 0\) 即可。
证毕。
对自然数 \(n\),我们想知道最小的 \(m\),使得任何长 \(m\) 的整数序列,都有一个长 \(n\) 的子序列(不一定连续)的总和是 \(n\) 的倍数。
\(m=2n-2\) 时,\(0^{n-1}1^{n-1}\) 就是坏的,因此 \(m\) 至少是 \(2n-1\)。
定理 16.15. 任何长为 \(2n-1\) 的整数序列里都存在长为 \(n\) 的子序列使其总和是 \(n\) 的倍数。
据说是数竞典题。先证 \(n\) 是素数的情形,然后推广到一般情况。
设序列 \(a_1,\cdots,a_{2n-1}\),\(\mathbb F_n\) 上多项式 \(f_0=\sum_{i=1}^{2n-1}x_i^{n-1},f_1=\sum_{i=1}^{2n-1}a_ix_i^{n-1}\)。\(0\) 显然是它们的公共零点,(定理 16.9)而且它们的公共零点个数是 \(n\) 的倍数,因此还有其他公共零点。
当然最典的做法是利用多项式 \(\sum_{\{i_1,\cdots,i_n\}\subset [2n-1]}(x_{i_1}+\cdots +x_{i_n})^{n-1}\)。
浙公网安备 33010602011771号