布尔函数
在数学中,布尔函数通常是如下形式的函数
f(b1, b2, ..., bn)
带有 n 个来自两元素布尔代数 {0,1} 的布尔变量 bi,f 的取值也在 {0, 1} 中。
在一般的定义域上的,取值在 {0, 1} 中的函数也叫做布尔值函数,所以布尔函数是它的特殊情况。带有定义域 {1, 2, 3, ... } 的这种函数通常叫做二进制序列,就是说 0 和 1 的无限序列;通过限制到 { 1, 2, 3, ..., n },布尔函数是编码长度为 n 的序列的自然的方法。
它有 <math>2^{2^n}</math> 个布尔函数;它们在复杂性理论的问题和数字计算机的芯片设计中扮演基础角色。布尔函数的性质在密码学中扮演关键角色,特别是在对称密钥算法的设计中(参见 s-box)。
在布尔值函数上的布尔运算逐点(point-wise)组合值(比如通过 xor 或其他布尔运算符)。
布尔函数可以唯一的写为积(and)之和(xor)。这叫做代数范式 (anf)。
<math>f(x_1, x_2, \ldots , x_n) = \!</math> <math>a_0 + \!</math>
<math>a_1x_1 + a_2x_2 + \ldots + a_nx_n + \!</math>
<math>a_{1,2}x_1x_2 + a_{n-1,n}x_x_n + \!</math>
<math>\ldots + \!</math>
<math>a_{1,2,\ldots,n}x_1x_2\ldots x_n \!</math>
序列 <math>a_0,a_1,\ldots,a_{1,2,\ldots,n}</math> 的值因此还唯一的表示一个布尔函数。布尔函数的代数度被定义为出现在乘积项中的 <math>x_i</math> 的最高数。所以 <math>f(x_1,x_2,x_3) = x_1 + x_3</math> 有度数 1 (线性),而 <math>f(x_1,x_2,x_3) = x_1 + x_1x_2x_3</math> 有度数 3 (立方)。