本文的真值表转逻辑表达式没有化到最简,最简详见:
更新链接:https://blog.csdn.net/wxkhturfun/article/details/131776977?spm=1001.2014.3001.5501
前言
遇到一个问题:想把真值表转换成逻辑表达式,真值表太长,不想手算,于是写了个脚本。但是为了检验结果的正确性,顺带写了个逻辑表达式转真值表的脚本。
一. 逻辑表达式转真值表
下面的例子是expression = abc+ (a非)b(c非),为了方便表示,用大写字母表示取非,小写字母表示原值,则expression = abc+AbC,在python代码中,该expression即被记为[(1,1,1),(0,1,0)],这里的(1,1,1)是按字母顺序的abc,这里的(0,1,0)是按字母顺序的AbC。
此时已经可以表示了,但是如果还有字母d呢?即化简后d消失了,那么可以认为d是可有可无的x,为了统一处理,这里用数字2来表示x, 则此时expression=[(1,1,1,2),(0,1,0,2)] ,以此类推!
生成的真值表存储在test.csv文件中
import csv
def Write_csv(csv_file,data,encode='utf-8'):
with open(csv_file, 'w', encoding=encode,newline='') as file_obj:
writer = csv.writer(file_obj)
for i in data:
writer.writerow(i)
def gen_data(exp,N):
data_out = []
for i in range(2**N):
line = bin(i)
line = str(line)
line = line[2:]
line = '0'*

本文介绍了如何使用Python脚本将逻辑表达式转换为真值表,以及从真值表还原逻辑表达式。作者提供了一种方法处理含取反变量的情况,并分享了代码实现。虽然作者认为脚本具有一定的化简功能,但后来发现并未达到最简形式。

2720

被折叠的 条评论
为什么被折叠?



