1.问题描述
真值表是命题逻辑中的一个十分重要的概念,利用它几乎可以解决命题逻辑中的所有问题。例如,利用命题公式的真值表,可以判断命题公式的类型、求命题公式的主范式、判断两命题公式是否等价。(背景:离散数学)
2.实验代码
# -*- coding:gbk -*-
sInput = '' #输入的命题公式字符串
sParse = '' #化简后的sInput
variable = [] #保存公式中的变量
ornl = [] #主析取范式最小项
andnl = [] #主合取范式最大项
fore = '' #符号前面的部分
back = '' #符号后面的部分
def myinput():
global sInput
print("请输入一个任意命题公式(原子命题用字母表示,'~'表示非 '&'表示合取 '|'表示析取 '>'表示蕴含 ':'表示等价 '@'表示异或,可用括号'()'):")
sInput = input()
def getVariale():
global sInput,variable
for c in sInput:
if c >= 'A' and c <= 'Z' or c >= 'a' and c <= 'z' :
if c not in variable:
variable.append(c)
elif c!='~' and c!='&' and c!