首页 > 编程知识 正文

离散数学主析取范式和主合取范式,析构函数内容

时间:2023-05-06 07:32:53 阅读:236925 作者:686

构造主析取范式

先上图。。。
主界面:

真值表:

主析取范式:

基本算法实现

(1)调用StartJFrame类的getTextField方法获取合适公式,将她转化为StringBuffer字符串test,便于处理操作。

(2)去掉多余的字符“=”,“>”,因此条件为“-”,双条件为“<”,对test进行一次遍历,遇到“=”和“>”,则删除字符“=”,“>”。存储为中缀表达式char[] infix。

(3)判断括号是否匹配(栈的应用,数据结构),合式公式是否正确(表达式各种不正确情况)

(4)计算合式公式中的变元个数,setNumber,这样不会受变元个数的影响,并且枚举真值的是可以采用2^number-1的二进制,当然也可以采用二叉树哦!有点麻烦,所有我就选择了二进制枚举。

例如:总共3个变元。利用二进制: 真值表: 0:0 0 0 4:1 0 0 1:0 0 1 5:1 0 1 2:0 1 0 6:1 1 0 3:0 1 1 7:1 1 1

二叉树:

每个结点有两个分支,根结点为-1,不加入真值表。-1 01 0 1 0 1

(5)将中表达式转化为后缀表达式(数据结构有的),便于计算。

(6)枚举真值,计算每一种情况合式公式的真值。

(7)计算合式公式的真值。

(8)根据真值表构造主析取范式。

流程图

代码来了

主界面:
https://paste.ubuntu.com/p/Bc5HXn5HW8/

基本算法实现:
https://paste.ubuntu.com/p/fRznfSM94F/

真值表:
https://paste.ubuntu.com/p/nCtRp2QYsT/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。