一个关于异或线性基的有趣结论

lsj2009

2024-11-11 15:16:10

Algo. & Theory

作者并不是很懂线性代数相关的一些术语,所以可能本文很多东西说法并不是很标准,不过从逻辑上应该是足够严谨的。

符号约定:

结论:

证明:

考虑一个我们求 F_{\max,B}(x) 的过程:

  1. i\gets 1
  2. x_i=0,则令 x\gets x\oplus B_i

这里有一个非常棘手的操作是:我们进行第二步操作后,x 后面的值会发生变化!也就是存在某个 j 最初 x_j=1,后来变成了 x_j=0也就是我们没法在最开始就确定每个位置是否会进行操作!

但是我们断言:必然存在一个线性基 B' 满足:

也就是我们对于线性基 B' 可以在最初确定哪些位置需要进行操作(所有 x_i=0 的位置)。

尝试给出构造性证明,考虑归纳:

  1. 对于 i=n 显然满足条件。
  2. 当前对于 i=k+1\sim n 满足条件,考虑取出所有 B'_{i,j}=1 的位置 j,令 B'_i\gets B'_i\oplus B'_j 即可。

最终得到的 B' 显然满足条件。

F_{\max,B}(x)=F_{\max,B'}(x)=x\oplus(\overset{n}{\underset{1\le i\le n,x_i=0}{\oplus}} B'_{i})

我们记 G_{\max,B}(x)=\overset{n}{\underset{1\le i\le n,x_i=0}{\oplus}} B_{i},同理有 G_{\min,B}(x)=\overset{n}{\underset{1\le i\le n,x_i=1}{\oplus}} B_{i}

即得 F_{\max,B'}(x)=x\oplus G_{\max,B'}(x)F_{\min,B'}(x)=x\oplus G_{\min,B'}(x)

考虑刻画 F_{\max,B}(x\oplus y)

\begin{aligned} & F_{\max,B}(x\oplus y)\\ & = F_{\max,B'}(x\oplus y)\\ & = (x\oplus y)\oplus G_{\max,B'}(x\oplus y)\\ & = (x\oplus y)\oplus G_{\min,B'}(\operatorname{not}(x\oplus y))\\ & = (x\oplus y)\oplus G_{\min,B'}(\operatorname{not}(x)\oplus y)\\ & = (x\oplus y)\oplus \color{red}{G_{\min,B'}(\operatorname{not}(x))\oplus G_{\min,B'}(y)}\\ & = (x\oplus G_{\min,B'}(\operatorname{not}(x)) \oplus (y\oplus G_{\min,B'}(y))\\ & = (x\oplus G_{\max,B'}(x)) \oplus (y\oplus G_{\min,B'}(y))\\ & = F_{\max,B'}(x)\oplus F_{\min,B'}(y)\\ & = F_{\max,B}(x)\oplus F_{\min,B}(y) \end{aligned}

故证毕!

注意其中标红的部分,手玩一下真值表可以说明,而 G_{\max,B} 就没有这样好的性质,这也就是我们强行扯出了 \min 的意义。