数学中,布尔函数(Boolean function),又称逻辑函数,描述如何基于对布尔输入的某种逻辑计算确定布尔值输出。它们在复杂性理论的问题和数字计算机芯片设计中扮演基础角色。布尔函数的性质在密码学中扮演关键角色,特别是在对称密钥算法的设计中(参见S-box)。

有限布尔函数

编辑

数学中,有限布尔函数是如下形式的函数 ,这里的 布尔域,而   是非负整数。在   的情况下,函数简单的是   的一个恒定元素。

更一般的说,形如   函数,这里的   是任意集合,是布尔值函数。如果 ,则   是“二进制序列”,就是说0和1的无限序列。如果 ,则   是长度为   的“二进制序列”

 个这种函数。

代数范式

编辑

布尔函数可以唯一的写为积(AND)之和(XOR)。这叫做代数范式(ANF),也叫做Zhegalkin多项式

   
 
 
 
 

这里的 。 序列 的值因此还唯一的表示一个布尔函数。

布尔函数的代数次数被定义为出现在乘积项中的   的最高次数。所以 有次数1(线性),而 有次数3(立方)。


对于每个函数 都有一个唯一的ANF。只有四个函数有一个参数:      ;它们都可以在ANF中给出。要表示有多个参数的函数,可以使用如下等式:

 

这里的  并且  

实际上,

如果  ,则  ,并因此 
如果  ,则  ,并因此 

因为  二者都有比 少的参数,可以得出递归的使用这个过程将完成于只有一个变量的函数。


例如,让我们构造一个 (逻辑或)的ANF:

 
因为  并且 ,可以得出 
通过打开括号我们得到最终的ANF: 

参见

编辑

外部链接

编辑

📚 Artikel Terkait di Wikipedia

布林 (資料類型)

//將會顯示這個,因為Boolean物件不是null }else{ console.log("This is false."); } 若僅使用 Boolean() function,則視同將參數轉為布林值 var boolean = Boolean(false); //等同於將 boolean 設為 false

邏輯函數

邏輯函數可以指: 逻辑斯谛函数(logistic function),一種常見的S型函数,其曲線邏輯斯諦曲線是一種S型曲線 布尔函数(Boolean function / logical function),对布尔输入的某种逻辑计算确定布尔值输出的函数

包裝函式

implements Stack, Set { private LinkedList stack; private HashSet set; public boolean push(Object o) { if (set.add(o)) return stack.push(o); else return false;

冒泡排序

bubbleSort(int[] array) { int temp; for (int i = 0; i < array.length - 1; i++) { boolean Flag = false; // 是否发生交换。没有交换,提前跳出外层循环 for (int j = 0; j < array.length

JavaScript语法

chain),这是普通关联数组所没有的。 JavaScript有几种内置对象,分别是Array、Boolean、Date、Function、Math、Number、Object、RegExp和String。 其他对象是“宿主对象”(host object),不是由语言定义,而是由运行时环境定义。

部分调用

假设存在函数 f (d, n) = [... 返回 boolean 值表示n是否能被d整除... ]。为了编程方便,需要另一个函数 g (n) = [... 返回 boolean 值表示n是否能被5整除... ]。可见,g (n) = f (5, n)。在上述例子中,对

Visual Basic .NET

Dim ridesBusToWork1? As Boolean Dim ridesBusToWork2 As Boolean? Dim ridesBusToWork3 As Nullable(Of Boolean) 比较表达式someVar = Nothing的结果永远是Nothing,应该用someVar

霍普克洛夫特-卡普算法

adj:array[1..maxn,0..maxn]of longint; n,m,e,i,j,ans,ff,rr:longint; function bfs:boolean; var i,u,j:longint; begin bfs:=false; fillchar(q,sizeof(q),0); rr:=1;