博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
布尔代数
阅读量:5267 次
发布时间:2019-06-14

本文共 887 字,大约阅读时间需要 2 分钟。

布尔函数的个数以及编号

  布尔函数就是由变量以及布尔操作符组成的表达式,比如:F = AB + C就是布尔函数。

  给定n的变量,可以组成无穷多个布尔函数,但是,只有2^(2^n)个布尔函数是不同的(即具有不同的真值表)。比如给定A,B,C三个变量,可以组成F = ABC, F = AABC, F = AAABC,...无穷多个布尔函数,但是只有2^(2^3) = 256个不同的布尔函数,其他的布尔函数都可以转化为这256个布尔函数。

  给定n个变量就会有2^(2^n)个不同的布尔函数,如果给这些布尔函数从0开始编号,那么通过布尔函数,如何获得这个布尔函数的编号呢?以布尔函数F = AB + C为例,首先画出这个布尔函数的真值表:

C B A F = AB + C
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

然后将真值表的函数结果值从下到上排列起来,对于上面的例子就是: 1 1 1 1 1 0 0 0,那么这串二进制代表的数值就是该布尔函数的编号,即F = AB + C的编号为:248。

  从上面的例子可以发现,函数编号如果写成二进制的形式,那么每一bit位对应的就是相关变量的值带入布尔函数后的结果值。比如248的二进制最高位(第7bit位)是1,刚好就是C = 1 B = 1 A = 1(7 = 4 * C + 2 * B + 1 * A)带入F = AB + C的结果值,换句话说,我们只要选出248的第i位,i = 4 * C + 2 * B + 1 * A,就可以得到指定的C B A在第248号布尔函数下的结果值,而根本不需要知道这个布尔函数的确切形式。

 

规范化形式(Canonical Form)

  任何一个布尔函数都只有一个规范化形式,但是规范化形式不是这个布尔函数的最优形式。使用规范化形式的原因是规范化形式与真值表之间的转换特别容易。

转载于:https://www.cnblogs.com/chaoguo1234/p/5450192.html

你可能感兴趣的文章
1043: [HAOI2008]下落的圆盘 - BZOJ
查看>>
线程同步之读写锁
查看>>
codeforces 620D Professor GukiZ and Two Arrays
查看>>
jstl-c:forEach
查看>>
Android----ListView入门知识--各种Adapter配合使用
查看>>
Swift 02.Array
查看>>
【arc093f】Dark Horse(容斥原理,动态规划,状态压缩)
查看>>
数据生成XML导入Excel
查看>>
MVC返回400 /404/...
查看>>
第二次作业
查看>>
浏览Document文件夹下面的所有文件夹和文件列表
查看>>
POJ3096:Surprising Strings(map)
查看>>
Linux命令行–基本的bash shell命令
查看>>
HDU4268(贪心+multiset)
查看>>
Problem I. Count - HDU - 6434(欧拉函数)
查看>>
angularjs 点击事件与动态追加
查看>>
如何在ScrollView中嵌套ListView
查看>>
委托和事件的简单实用
查看>>
面试题答案一
查看>>
arcgis 10.3 属性表乱码解决方案
查看>>