一、求解公式
思路:
1、首先我们要处理这个公式怎么能被计算机怎样方便的计算,我们人类所熟悉的是中缀表达式,但是计算机需要的不是我们这种,计算起来十分麻烦,因此我们首先要把这个公式转换成后缀表达式(也就是逆波兰式)不会的同学可以去看看我那篇逆波兰表达式。
2、然后我们要考虑公式符号的处理,因为我们计算机是没有->(蕴含符号) 和 <->(等价符号) 和 (取非符号的)所以我们要自定义符号,这里我把蕴含符号变成了‘-’号,等价符号变成了‘+’号,取非符号变成了‘ ! ',这样一来计算再次被化简。
3、我们计算逆波兰表达式要用到栈结构,不了解得话可以去看看我的栈结构的文章啊。
4、最后是统计主析取范式和主合取范式和真值表
5、我们只需要遍历当前元素的个数,然后分别跑n个循环,就可以得到他们的真值表和主析取范式。。。。
二、代码实现
1 #include
2 #include
3 #include
4 #include
5 #include <string>
6 #include