「总结」FWT
前置知识:FWT 的另一种理解
FWT 的另一种理解,文中使用的系数矩阵 \(F\) 似乎不太标准,本文中认为 \(\mathscr{F}(\bm a)=F\times\bm a\)。
摘要:FWT 使用的线性变换的系数矩阵 \(F\) 需要满足 \(F(i,x\oplus y)=F(i,x)\times F(i,y)\)。
同或卷积
因为同或运算在每一位上是独立的,所以我们只需要构造一个 \(2\times 2\) 的矩阵 \(F\) 即可。
可以令 \(F=\begin{bmatrix}1 & 1\\-1 & 1\end{bmatrix}\),则 \(F^{-1}=\begin{bmatrix}0.5 & -0.5\\0.5 & 0.5\end{bmatrix}\)。
k 进制 FWT
\(k\) 进制异或即 \(k\) 进制不进位加法,我们需要一种能够自动对 \(k\) 取模的结构。
容易想到令 \(F(i, j) = \omega_k^j\),但是该矩阵不可逆。
显然必须添加 \(i\) 的影响。联想到乘法分配律,令 \(F(i, j) = \omega_k^{ij}\) 即可。
发现 \(F\) 与 FFT 的系数矩阵相同,可以类比得出 \(F(i, j) = {1 \over k} \times \omega_k^{-ij}\)。