29、三元弯曲函数的构造与特性

三元弯曲函数的构造与特性

1. 三元线性函数与三元弯曲函数

三元线性函数定义为变量所有可能组合的和,这些线性组合中的系数为常数 1 和 2。在 n 个变量中,有 (3^n) 个线性函数,我们分别用 (l_i) 和 (\mathbf{L} i)((i = 0, 1, \cdots, 3^n - 1))表示这些函数及其函数向量。用 (\mathcal{L}_n) 表示给定 n 下所有线性函数的集合。(\mathcal{L}_n) 中的第一个函数 (l_0) 是常函数,其值可以是 0、1 或 2,我们用 (l {0,0})、(l_{0,1}) 和 (l_{0,2}) 来区分这些可能的常函数。

线性函数集合 (\mathcal{L}_n) 与表示给定 n 的 Vilenkin - Chrestenson 矩阵行的 (3^n) 个 Vilenkin - Chrestenson 函数集合同构。由于 Vilenkin - Chrestenson 函数通常按 Hadamard 顺序书写,以提供可表示为 Kronecker 积的 Vilenkin - Chrestenson 变换矩阵,所以我们对 (\mathcal{L}_n) 中的线性函数也采用相同的初始顺序。

将三元变量视为 n 个变量的函数时,其中只有一个变量是必要的,这些函数是平衡函数。由此可知,作为它们线性组合的线性函数也是平衡函数,其分布为 (D = (3^{n - 1}, 3^{n - 1}, 3^{n - 1}))。下表展示了 n 从 1 到 8 时三元线性函数的函数值分布:
| n | 分布 |
| — | — |
| 1 | (D_{l,1} = (1, 1, 1)) |
| 2 | (D_{l,2} = (3, 3, 3)) |
| 3 | (D_{l,3} = (9, 9, 9)) |
| 4 | (D_{l,4} = (27, 27, 27)) |
| 5 | (D_{l,5} = (81, 81, 81)) |
| 6 | (D_{l,6} = (243, 243, 243)) |
| 7 | (D_{l,7} = (729, 729, 729)) |
| 8 | (D_{l,8} = (2187, 2187, 2187)) |

对于 n = 2 的三元线性函数,其函数表达式和函数向量如下表所示:
| 函数 | 函数向量 |
| — | — |
| (l_{0,0} = 0) | (\mathbf{F}_0 = [0, 0, 0, 0, 0, 0, 0, 0, 0]^T) |
| (l_1 = x_2) | (\mathbf{F}_1 = [0, 1, 2, 0, 1, 2, 0, 1, 2]^T) |
| (l_2 = 2x_2) | (\mathbf{F}_2 = [0, 2, 1, 0, 2, 1, 0, 2, 1]^T) |
| (l_3 = x_1) | (\mathbf{F}_3 = [0, 0, 0, 1, 1, 1, 2, 2, 2]^T) |
| (l_4 = x_1 \oplus x_2) | (\mathbf{F}_4 = [0, 1, 2, 1, 2, 0, 2, 0, 1]^T) |
| (l_5 = x_1 \oplus 2x_2) | (\mathbf{F}_5 = [0, 2, 1, 1, 0, 2, 2, 1, 0]^T) |
| (l_6 = 2x_1) | (\mathbf{F}_6 = [0, 0, 0, 2, 2, 2, 1, 1, 1]^T) |
| (l_7 = 2x_1 \oplus x_2) | (\mathbf{F}_7 = [0, 1, 2, 2, 0, 1, 1, 2, 0]^T) |
| (l_8 = 2x_1 \oplus 2x_2) | (\mathbf{F}_8 = [0, 2, 1, 2, 1, 0, 1, 0, 2]^T) |

有趣的是,线性函数有一个非零的 ((k \times k)) 矩阵值系数,其行是 k 个值 1 的模式,这与某些类中的系数类似。

弯曲函数的非线性要求不能出现零值系数,否则该函数将同构于 Walsh 或 Vilenkin - Chrestenson 函数,而这些函数又同构于线性函数。同时,存在一些弯曲函数,其所有 ((k \times k)) 谱系数是由行组成的矩阵,这些行是相同模式的不同排列或其元素和符号变化,以确保矩阵值系数的非奇异性。

2. 从三元线性函数构造三元弯曲函数

从线性函数构造弯曲函数的思路可能有悖直觉。下面以二元弯曲函数为例说明基本思想。

考虑四变量基本二元弯曲函数 (f = x_1x_2 \oplus x_3x_4),其函数向量为 (\mathbf{F} = [0, 0, 0, 1|0, 0, 0, 1|0, 0, 0, 1|1, 1, 1, 0]^T)。可以发现这是一个不平衡函数,其中两个不同的子向量 (\mathbf{F}_1 = [0, 0, 0, 1]^T) 和其补向量 (\mathbf{F}_2 = [1, 1, 1, 0]^T) 作为二变量弯曲函数也是不平衡的。因此,(\mathbf{F}) 可以看作是二变量弯曲函数 (f_1 = x_1x_2) 和 (f_2 = 1 \oplus x_1x_2) 的函数向量的串联,即 (\mathbf{F} = [\mathbf{F}_1, \mathbf{F}_1, \mathbf{F}_1, \mathbf{F}_2]^T)。

如果对变量进行置换 (x_2 \leftrightarrow x_3),构造的函数 (f_l = x_1x_3 \oplus x_2x_4) 仍然是弯曲函数,因为变量的任何置换都是谱不变操作,即谱系数(这里是 Walsh 系数)的绝对值不变。

对于三元弯曲函数,我们区分具有主要和次要分布的函数情况。对于具有主要分布的函数,我们首先讨论基本三元弯曲函数 (f_p) 的构造。

在 2n 个变量中,基本三元弯曲函数 (f_p(2n)) 通过串联 (\mathcal{L}_n) 中线性函数的函数向量来构造,即 (\mathbf{F}_p(2n) = [\mathcal{L}_n]^T = [\mathbf{L}_0|\mathbf{L}_1| \cdots |\mathbf{L}_n]^T)。

在奇数个变量(2n + 1)的情况下,(f_p) 的函数表达式包含一个变量的平方,而其他所有变量都参与不相交的变量对。基本三元弯曲函数 (f_p(2n + 1)) 通过将 (\mathcal{L}_n) 中线性函数的函数向量串联三次,并在最后两次重复中向函数向量添加常数 1 来构造:
(\mathbf{F}_p(2n + 1) = [\mathcal{L}_n|\mathcal{L}_n \oplus \mathbf{1}|\mathcal{L}_n \oplus \mathbf{1}]^T = [\mathbf{L}_0|\mathbf{L}_1| \cdots |\mathbf{L}_n|\mathbf{L}_0 \oplus \mathbf{1}|\mathbf{L}_1 \oplus \mathbf{1}| \cdots |\mathbf{L}_n \oplus \mathbf{1}|\mathbf{L}_0 \oplus \mathbf{1}|\mathbf{L}_1 \oplus \mathbf{1}| \cdots |\mathbf{L}_n \oplus \mathbf{1}]^T)
其中 (\mathbf{1}) 表示长度为 (3^n) 且所有元素为 1 的向量。

通过对构造过程中涉及的线性函数对应的子向量进行操作,可以构造许多其他弯曲函数,可能的操作如下:
1. 将 (\mathcal{L} n) 中线性函数的顺序从 Hadamard 顺序更改为其他任何顺序。
2. 使用常数 0、1 或 2,即常函数 (l
{0,0})、(l_{0,1})、(l_{0,2})。
3. 向 (\mathcal{L}_n) 中的任何线性函数添加常数 1 或 2,包括向 (\mathcal{L}_n) 中的一个子集或所有线性函数添加常数。

对于 n 为偶数且 (n \neq 0 \pmod{4}) 的情况,变量平方的和可以看作是另一个基本弯曲函数,但这些函数不能通过串联线性函数生成。在这种情况下,我们使用由变量平方和表示的较少变量的函数,并以与从线性函数生成奇数个变量的弯曲函数相同的方式串联这些函数的函数向量。

下面是构造过程的 mermaid 流程图:

graph LR
    A[开始] --> B{变量个数奇偶性}
    B -- 偶数 --> C[串联线性函数向量构造 f_p(2n)]
    B -- 奇数 --> D[串联线性函数向量三次并添加常数构造 f_p(2n+1)]
    C --> E[进行子向量操作构造其他弯曲函数]
    D --> E
    E --> F[结束]

通过这些方法和操作,可以从三元线性函数构造出各种不同的三元弯曲函数。

3. 构造示例与特性分析

下面通过具体示例进一步说明如何从线性函数构造不同的三元弯曲函数。

3.1 基本构造示例

考虑一个三元函数 (f_p),其函数向量通过串联三元线性函数的函数向量得到:
(\mathbf{F} p = [l {0,0},l_1,l_2,l_3,l_4,l_5,l_6,l_7,l_8]^T)

(\mathbf{F} = [0, 0, 0, 0, 0, 0, 0, 0, 0, |1, 2, 0, 1, 2, 0, 1, 2, |0, 2, 1, 0, 2, 1, 0, 2, 1, |0, 0, 0, 1, 1, 1, 2, 2, 2, |0, 1, 2, 1, 2, 0, 2, 0, 1, |0, 2, 1, 1, 0, 2, 2, 1, 0, |0, 0, 0, 2, 2, 2, 1, 1, 1, |0, 1, 2, 2, 0, 1, 1, 2, 0, |0, 2, 1, 2, 1, 0, 1, 0, 2]^T)
该函数是弯曲函数,其 Vilenkin - Chrestenson 系数的绝对值等于 9,函数表达式为 (f = x_1x_3 \oplus x_2x_4)。

3.2 线性函数重排示例

考虑函数 (f_1),其函数向量 (\mathbf{F} 1) 是对 (\mathbf{F}_0) 中线性函数进行重排得到的,即 (\mathbf{F}_1 = [l {0,0},l_1,l_5,l_3,l_4,l_7,l_6,l_2,l_8]^T)。
函数向量为
(\mathbf{F}_1 = [0, 0, 0, 0, 0, 0, 0, 0, 0, |0, 1, 2, 0, 1, 2, 0, 1, 2, |0, 2, 1, 1, 0, 2, 2, 1, 0, |0, 0, 0, 1, 1, 1, 2, 2, 2, |0, 1, 2, 1, 2, 0, 2, 0, 1, |0, 1, 2, 2, 0, 1, 1, 2, 0, |0, 0, 0, 2, 2, 2, 1, 1, 1, |0, 2, 1, 0, 2, 1, 0, 2, 1, |0, 2, 1, 2, 1, 0, 1, 0, 2]^T)
函数表达式为
(f_1 = x_2x_4 \oplus x_2x_3 \oplus 2x_2^2x_3 \oplus x_1x_3 \oplus x_1x_2x_3 \oplus x_1x_2^2x_4 \oplus 2x_1^2x_2x_4 \oplus 2x_1^2x_2x_3)
该函数是弯曲函数,有趣的是它的次数为 4,而具有相同分布但变量顺序不同的基本三元函数 (f = x_1x_2 \oplus x_3x_4) 以及按 Hadamard 顺序排列线性函数的 (f = x_1x_3 \oplus x_2x_4) 的次数为 2。

再考虑函数 (f_2),其函数向量 (\mathbf{F} 2 = [l_6,l_7,l_8,l {0,0},l_1,l_2,l_3,l_4,l_5]^T)。
函数向量为
(\mathbf{F}_2 = [0, 0, 0, 2, 2, 2, 1, 1, 1, |0, 1, 2, 2, 0, 1, 1, 2, 0, |0, 2, 1, 2, 1, 0, 1, 0, 2, |0, 0, 0, 0, 0, 0, 0, 0, 0, |0, 1, 2, 0, 1, 2, 0, 1, 2|0, 2, 1, 0, 2, 1, 0, 2, 1, |0, 0, 0, 1, 1, 1, 2, 2, 2, |0, 1, 2, 1, 2, 0, 2, 0, 1, |0, 2, 1, 1, 0, 2, 2, 1, 0]^T)
函数表达式为 (f_2 = x_2x_4 \oplus x_1x_3 \oplus 2x_3)。
从 (\mathbf{F}) 到 (\mathbf{F}_1) 的置换对应于 FFT 样的置换矩阵,这是一种谱不变操作。而 (\mathbf{F}_2) 可以通过对 (\mathbf{F}_1) 应用另一个 FFT 样的置换矩阵得到。

3.3 添加常数示例

考虑向量 (\mathbf{F} = [l_0,l_1,l_2,l_3,l_4,l_5,l_6,l_6,l_8]^T)。
向线性函数 (f_6,f_7,f_8) 和 (f_3,f_4,f_5) 分别添加常数 1 和 2,得到 (\mathbf{F}_1 = [f_0,f_1,f_2,2 \oplus f_3,2 \oplus f_4,2 \oplus f_5,1 \oplus f_6,1 \oplus f_7,1 \oplus f_8]^T)。
函数向量为
(\mathbf{F}_1 = [0, 0, 0, 0, 0, 0, 0, 0, 0, |0, 1, 2, 0, 1, 2, 0, 1, 2, |0, 2, 1, 0, 2, 1, 0, 2, 1, |2, 2, 2, 0, 0, 0, 1, 1, 1, |2, 0, 1, 0, 1, 2, 1, 2, 0, |2, 1, 0, 0, 2, 1, 1, 0, 2, |1, 1, 1, 0, 0, 0, 2, 2, 2, |1, 2, 0, 0, 1, 2, 2, 0, 1, |1, 0, 2, 0, 2, 1, 2, 1, 0]^T)
函数表达式为 (f_1 = x_2x_4 \oplus 2x_1 \oplus x_1x_3),该函数是弯曲函数。

3.4 应用常函数示例

使用 (l_{0,1}) 代替 (l_{0,0}) 构造函数,其函数向量 (\mathbf{F} 1 = [l {0,1},l_1,l_2,l_3,l_4,l_5,l_6,l_7,l_8]^T)。
函数向量为
(\mathbf{F} = [1, 1, 1, 1, 1, 1, 1, 1, 1, |0, 1, 2, 0, 1, 2, 0, 1, 2, |0, 2, 1, 0, 2, 1, 0, 2, 1, |0, 0, 0, 1, 1, 1, 2, 2, 2, |0, 1, 2, 1, 2, 0, 2, 0, 1, |0, 2, 1, 1, 0, 2, 2, 1, 0, |0, 0, 0, 2, 2, 2, 1, 1, 1, |0, 1, 2, 2, 0, 1, 1, 2, 0, |0, 2, 1, 2, 1, 0, 1, 0, 2]^T)
函数表达式为 (f = 1 \oplus x_2x_4 \oplus 2x_2^2 \oplus x_1x_3 \oplus 2x_1^2 \oplus x_1^2x_2^2)。
使用 (l_{0,2}) 代替 (l_{0,0}) 构造函数,其函数向量 (\mathbf{F} 1 = [l {0,2},l_1,l_2,l_3,l_4,l_5,l_6,l_7,l_8]^T)。
函数向量为
(\mathbf{F} = [2, 2, 2, 2, 2, 2, 2, 2, 2, |0, 1, 2, 0, 1, 2, 0, 1, 2, |0, 2, 1, 0, 2, 1, 0, 2, 1, |0, 0, 0, 1, 1, 1, 2, 2, 2, |0, 1, 2, 1, 2, 0, 2, 0, 1, |0, 2, 1, 1, 0, 2, 2, 1, 0|0, 0, 0, 2, 2, 2, 1, 1, 1, |0, 1, 2, 2, 0, 1, 1, 2, 0, |0, 2, 1, 2, 1, 0, 1, 0, 2]^T)
函数表达式为 (f = 2 \oplus x_2x_4 \oplus x_2^2 \oplus x_1x_3 \oplus x_1^2 \oplus 2x_1^2x_2^2)。
向所有线性函数添加常数 2,函数向量 (\mathbf{F} 1 = [l_0 \oplus 2,l_1 \oplus 2,l_2 \oplus 2,l_3 \oplus 2,l_4 \oplus 2,l_5 \oplus 2,l_6 \oplus 2,l_7 \oplus 2,l_8 \oplus 2]^T)。
函数向量为
(\mathbf{F} = [2, 2, 2, 2, 2, 2, 2, 2, 2, |2, 0, 1, 2, 0, 1, 2, 0, 1, |2, 1, 0, 2, 1, 0, 2, 1, 0, |2, 2, 2, 0, 0, 0, 1, 1, 1, |2, 0, 1, 0, 1, 2, 1, 2, 0, |2, 1, 0, 0, 2, 1, 1, 0, 2|2, 2, 2, 1, 1, 1, 0, 0, 0, |2, 0, 1, 1, 2, 0, 0, 1, 2, |2, 1, 0, 1, 0, 2, 0, 2, 1]^T)
函数表达式为 (f = 2 \oplus x_2x_4 \oplus x_1x_3)。
任意向某些线性函数添加常数,如 (\mathbf{F} = [l
{0,2},l_1,l_2 \oplus 2,l_3 \oplus 1,l_4,l_5 \oplus 2,l_6 \oplus 2,l_7 \oplus 1,l_8 \oplus 2]^T)。
函数向量为
(\mathbf{F} = [2, 2, 2, 2, 2, 2, 2, 2, 2, |0, 1, 2, 0, 1, 2, 0, 1, 2, |1, 0, 2, 1, 0, 2, 1, 0, 2, |1, 1, 1, 2, 2, 2, 0, 0, 0, |0, 1, 2, 1, 2, 0, 2, 0, 1, |2, 1, 0, 0, 2, 1, 1, 0, 2, |2, 2, 2, 1, 1, 1, 0, 0, 0, |1, 2, 0, 0, 1, 2, 2, 0, 1, |2, 1, 0, 1, 0, 2, 0, 2, 1]^T)
函数表达式为 (f = 2 \oplus x_2 \oplus x_2x_4 \oplus x_1 \oplus x_1x_3 \oplus 2x_1x_2 \oplus x_1^2 \oplus x_1^2x_2 \oplus 2x_1^2x_2^2)。

这些示例表明,通过重排线性函数顺序、添加常数和使用不同的常函数等操作,可以构造出不同的三元弯曲函数,并且这些操作通常能保持函数的弯曲性。

4. 总结

通过上述内容,我们深入了解了三元线性函数和三元弯曲函数的特性,以及如何从三元线性函数构造三元弯曲函数。具体总结如下:
- 三元线性函数具有特定的定义和分布特性,其与 Vilenkin - Chrestenson 函数集合同构。
- 弯曲函数的非线性要求零值系数不能出现,且存在一些特殊的谱系数结构。
- 从线性函数构造弯曲函数的方法包括串联线性函数向量、重排线性函数顺序、添加常数和使用不同常函数等。
- 通过多个具体示例展示了这些构造方法的应用和效果,并且这些操作通常能保持函数的弯曲性。

未来,我们可以进一步研究这些构造方法在实际应用中的性能和优化,例如在密码学、信号处理等领域的应用。同时,探索更多构造三元弯曲函数的方法和技巧,以满足不同的需求。

下面是不同操作构造弯曲函数的总结表格:
| 操作类型 | 示例函数向量 | 函数表达式 |
| — | — | — |
| 基本串联 | (\mathbf{F} p = [l {0,0},l_1,l_2,l_3,l_4,l_5,l_6,l_7,l_8]^T) | (f = x_1x_3 \oplus x_2x_4) |
| 线性函数重排 | (\mathbf{F} 1 = [l {0,0},l_1,l_5,l_3,l_4,l_7,l_6,l_2,l_8]^T) | (f_1 = x_2x_4 \oplus x_2x_3 \oplus 2x_2^2x_3 \oplus x_1x_3 \oplus x_1x_2x_3 \oplus x_1x_2^2x_4 \oplus 2x_1^2x_2x_4 \oplus 2x_1^2x_2x_3) |
| 添加常数 | (\mathbf{F} 1 = [f_0,f_1,f_2,2 \oplus f_3,2 \oplus f_4,2 \oplus f_5,1 \oplus f_6,1 \oplus f_7,1 \oplus f_8]^T) | (f_1 = x_2x_4 \oplus 2x_1 \oplus x_1x_3) |
| 应用常函数 (l
{0,1}) | (\mathbf{F} 1 = [l {0,1},l_1,l_2,l_3,l_4,l_5,l_6,l_7,l_8]^T) | (f = 1 \oplus x_2x_4 \oplus 2x_2^2 \oplus x_1x_3 \oplus 2x_1^2 \oplus x_1^2x_2^2) |
| 应用常函数 (l_{0,2}) | (\mathbf{F} 1 = [l {0,2},l_1,l_2,l_3,l_4,l_5,l_6,l_7,l_8]^T) | (f = 2 \oplus x_2x_4 \oplus x_2^2 \oplus x_1x_3 \oplus x_1^2 \oplus 2x_1^2x_2^2) |
| 任意添加常数 | (\mathbf{F} = [l_{0,2},l_1,l_2 \oplus 2,l_3 \oplus 1,l_4,l_5 \oplus 2,l_6 \oplus 2,l_7 \oplus 1,l_8 \oplus 2]^T) | (f = 2 \oplus x_2 \oplus x_2x_4 \oplus x_1 \oplus x_1x_3 \oplus 2x_1x_2 \oplus x_1^2 \oplus x_1^2x_2 \oplus 2x_1^2x_2^2) |

通过这些总结和表格,我们可以更清晰地看到不同构造方法的特点和效果。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值