概要
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))
成果物
以上。