q-binomial 与线性基计数问题
q-binomial
本文章将直接给出相关定义与结论,并不会涉及 q-binomial 的自然推导历程,一些复杂的代数推导证明也省略。详见 zak 的博客。
q-analog
\([n]_q=\sum\limits_{i=0}^{n-1} q^i=\lim\limits_{x\to q}\frac {1-x^n}{1-x}\)。
\([n]!_q=[n-1]!_q[n]_q\),特殊的 \([0]!_q=1\)。
q-binomial 的定义、组合意义、OGF 形式
定义:
- \(\begin{bmatrix} n \\ m \end{bmatrix}_{q} = \frac {[n]_q!}{[m]_q![n-m]_q!}\)。
组合意义:
- 从 \((0,0)\to (n-m,m)\),每次向上或向右走一步,所有路径 \(q^{右下角区域点数}\) 之和(注意路径连续一段向上走不应被计入)。
- 长度为 \(n\) 的 \(01\) 序列,恰有 \(k\) 个 \(0\) 时 \(q^{逆序对数量}\) 之和。
- (其实不难发现就是整数划分状物。)
OGF 形式:
- 定义形式幂级数 \(F(x)=\frac {1}{\prod\limits_{i=0}^n(1-q^ix)}\),\([x^i]F(x)=\begin{bmatrix} n+i \\ n \end{bmatrix}_{q}\)。
若干恒等式
对称性。非常显然:
- \(\begin{bmatrix} n \\ m \end{bmatrix}_{q}=\begin{bmatrix} n \\ n-m \end{bmatrix}_{q}\)。
吸收恒等式:
- \(m\begin{bmatrix} n \\ m \end{bmatrix}_{q}=n\begin{bmatrix} n-1 \\ m-1 \end{bmatrix}_{q}\)。
杨辉三角。展开后可得。两个式子分别 \(\begin{bmatrix} n-1 \\ m-1 \end{bmatrix}_{q},\begin{bmatrix} n-1 \\ m \end{bmatrix}_{q}\) 的系数为 \(1\),看情况使用:
- \(\begin{bmatrix} n \\ m \end{bmatrix}_{q}=\begin{bmatrix} n-1 \\ m-1 \end{bmatrix}_{q}+q^m\begin{bmatrix} n-1 \\ m \end{bmatrix}_{q}\)。
- \(\begin{bmatrix} n \\ m \end{bmatrix}_{q}=q^{n-m}\begin{bmatrix} n-1 \\ m-1 \end{bmatrix}_{q}+\begin{bmatrix} n-1 \\ m \end{bmatrix}_{q}\)。
组合意义“逆序对”的由来。左式是所有 \(0\) 下标之和,右式相当于将其拆成 \((1,1)+(1,0)\):
- \(\prod\limits_{i=0}^{n-1}(1+q^ix)=\sum\limits_{i=0}^{n}{q^{{i\choose 2}}\begin{bmatrix} n \\ i \end{bmatrix}_{q}x^i}\)
范德蒙德卷积。利用组合意义“路径”,多乘的系数就是漏掉的右下角矩形:
- \(\begin{bmatrix} n+m \\ k \end{bmatrix}_{q}=\sum\limits_{i=0}^k q^{(n-i)(k-i)}\begin{bmatrix} n \\ i \end{bmatrix}_{q}\begin{bmatrix} m \\ k-i \end{bmatrix}_{q}\)
上指标求和。利用杨辉三角的式子 \(2\) 不断展开可得:
- \(\sum\limits_{i=0}^m q^i\begin{bmatrix} n+i \\ n \end{bmatrix}_{q}=\begin{bmatrix} n+m+1 \\ n+1 \end{bmatrix}_{q}\)。
线性基计数问题
默认了解线性代数基本结论。
求秩为 \(k\) 的向量序列个数
problem:计算长度为 \(n\) 的 \(F_{p}^k\) 向量序列个数,满足秩为 \(r\),\(p\) 为质数。
- 引理:\(r\) 个线性无关 \(F_{p}^k\) 向量所张成的子空间大小为 \(p^r\)。
考虑分两步计算,先得到基,再插入其它元素。实质上是将原序列按照其前缀的秩分层,此处的“基”为每层第一个元素,也就是平常写的贪心求线性基。
前者方案数为 \(\prod\limits_{i=1}^r (p^k-p^{i-1})\);后者在基的 \(i,i+1\) 元素中间插入的方案数为 \(p^i\),生成函数刻画为:
此即 q-binomial 的 OGF,因此值为 \(\begin{bmatrix} n \\ r \end{bmatrix}_{q}\)。
模板题:CF1916H2 Matrix Rank (Hard Version)。
CF1603F October 18, 2017
枚举秩为 \(r\),那么会有 \(2^k-2^r\) 个无法表示的值。注意此处 \(0\) 被表示为空集,但题目要求了非空子序列,不妨对 \(x=0\) 特判后将条件改为允许子序列为空。
由于 \(F_{2}\) 具有良好的对称性,不难感受到每个 \(x\ne 0\) 的答案都是一样的。因此计算无法表示的值个数之和,并除以 \(2^k-1\) 即可。
总结:
- 线性组合(子序列)状物考虑枚举秩。
- \(F_2\) 中对称性相关结论往往是正确的。
求最大子序列异或和的期望
problem:计算长度为 \(n\) 的 \(F_{2}^m\) 向量序列的最大子序列异或和之和。
考虑基的行最简型,即跑高斯消元得到的线性基,它具有良好的性质:
- 唯一存在。
- 记其主元 \(a_1<\dots <a_r\),则第 \(a_i\) 列除了该主元对应向量所处行外,均为 \(0\)。
枚举 \(a_1\dots a_r\),最大异或和即为 \(a\) 的异或和,异或和的主元位必为 \(1\),而其它位显然是 \(0/1\) 等概率出现的,因此异或和期望为 \(\frac 12(2^{a_r+1}-1+\sum\limits_{i=1}^r 2^{a_i})\)。
接下来计算 \(a\) 对应的向量序列个数,将数位分为主元与自由元考虑,注意到确定每个向量主元位取值后,自由元的填写方案(即行最简型)与向量序列构成双射。
主元的计数相当于 \(n\) 个 \(F_{2}^r\) 向量秩为 \(r\) 的方案数,由行秩等于列秩,将其转置为 \(r\) 个 \(F_{2}^n\) 线性无关方案数,显然为 \(\prod\limits_{i=1}^r (2^n-2^{i-1})\)。自由元则是 \(\prod\limits_{i=1}^{r} 2^{a_i-(i-1)}\)。
枚举 \(r\),\(\frac 12,\prod\limits_{i=1}^r (2^n-2^{i-1})\) 视为常数略去,我们要算这一坨:
拆开和式对三部分分别计算:
- \(2^{a_r+1}\):枚举 \(a_r\),提取 \(\prod 2^{-(i-1)}\) 后要算 \(\prod\limits_{i=0}^{a_r-1} (1+2^ix) [x^{r-1}]\),此即 \(2^{2a_r}\begin{bmatrix} a_r \\ r-1 \end{bmatrix}_{2} {2^{r-1\choose 2}}\)。对于 \(\sum\limits_{i}^{m-1} 2^{2i}\begin{bmatrix} i \\ r \end{bmatrix}_{q}\) 使用吸收恒等式配凑系数后套用上指标求和。
- \(-1\):同上,但不用枚举了。
- \(\sum 2^{a_i}\):要算 \(\prod\limits_{i=1}^r 2^{a_i}\sum\limits_{i=1}^r2^{a_i}\),考虑容斥,假装和式为 \(2^{m}-1\) 再减去不在 \(a\) 中的位,此即选 \(k+1\) 个元素的 \(\prod 2^{a_i}\) 之和再乘上选取容斥位的方案数 \(k+1\)。
总结:
- 线性组合的最值考虑枚举基的行最简型,分为主元与自由元考虑,感性理解:主元决定了作为线性基的性质、自由元则随机分布。计数时先提取主元计算满秩方案数;再乘上行最简型每个向量填写方案数,唯一确定自由元。
- q-binomial 可用于刻画递增元素序列作为 \(q\) 次幂指数,因此式子转换方向应为“使元素互不相同”,可参考上面的容斥。
- 运用吸收恒等式提取系数,配凑出上指标求和的形式。
模板题:AT_arc139_f [ARC139F] Many Xor Optimization Problems

浙公网安备 33010602011771号