真理値表から論理式を求める。


概要

sympyで真理値表から論理式を求める。

全加算器の真理値表

0 キャリー入力
1 入力
2 入力
7 出力
6 キャリー

サンプルコード

import sympy as sym


print (sym.SOPform(['a', 'b', 'c'], [[0, 1, 1], [1, 0, 1], [1, 1, 0], [1, 1, 1]]))
print (sym.SOPform(['a', 'b', 'c'], [[0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]))

print (sym.POSform(['a', 'b', 'c'], [[0, 1, 1], [1, 0, 1], [1, 1, 0], [1, 1, 1]]))
print (sym.POSform(['a', 'b', 'c'], [[0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]))

実行結果


Or(And(a, b), And(a, c), And(b, c))
Or(And(Not(a), Not(b), c), And(Not(a), Not(c), b), And(Not(b), Not(c), a), And(a, b, c))
And(Or(a, b), Or(a, c), Or(b, c))
And(Or(Not(a), Not(b), c), Or(Not(a), Not(c), b), Or(Not(b), Not(c), a), Or(a, b, c))


以上。