首页 > 编程语言 > 详细

Python科学计算系列9—逻辑代数

时间:2020-06-30 21:18:32      阅读:74      评论:0      收藏:0      [点我收藏+]

1.基本定理的验证

代码如下:

from sympy import *

A, B, C = symbols(A B C)
# 重叠律
# A·A=A     A+A=A
print(to_cnf(A | A))
print(to_cnf(A & A))
# 结合律
print(to_cnf(~(A | B) | C))
# 分配律
# A+B·C=(A+B)(A+C)
print(to_dnf(A & (B | C)))
# 反演律
print(to_dnf(~(A | B)))
print(to_dnf(~(A & B)))
# 还原律
print(to_cnf(~(~A)))

运行结果:

技术分享图片

2.化简逻辑函数

代码如下:

from sympy import *

A, B, C = symbols(A B C)
# 化简逻辑函数(!A+!B+!C)(!A+!B+!C)
f1 = simplify_logic((~A & ~B & ~C) | (~A & ~B & C))
print(f1)
# 化简最小项之和为析取范式
minterms1 = [0, 7]
f2 = SOPform([A, B, C], minterms1)
print(f2)
# 化简最小项之和为合取范式
minterms2 = [[1, 0, 1], [1, 1, 0], [1, 1, 1]]
f3 = POSform([A, B, C], minterms2)
print(f3)
# 化简最小项之和为析取范式(第7项任取)
minterms3 = [[1, 0, 1], [1, 1, 0]]
dontcares = [7]
f4 = SOPform([A, B, C], minterms3, dontcares)
print(f4)

运行结果:

技术分享图片

Python科学计算系列9—逻辑代数

原文:https://www.cnblogs.com/wanyuan/p/13210134.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!