paizaでsympy その5


概要

sympyが、魔法なので、paizaで、やってみた。
練習問題、やってみた。

問題

x,y,z を論理変数,Tを真,Fを偽とするとき,次の真理値表で示される関数 f(x,y,z) を表す論理式はどれか。ここでnは論理積,Uは論理和,~AはAの否定を表す。

x y z f
t t t t
t t f t
t f t t
t f f f
f t t f
f t f f
f f t t
f f f f

(xny)U(ynz)
(xny)U(~ynz)
(xny)U(~yn~z)
(xn~y)U(~yn~z)

サンプルコード

import sympy as sym

a = sym.POSform(['x', 'y', 'z'], [[1, 1, 1], [1, 1, 0], [1, 0, 1], [0, 0, 1]])
print (a)
b = sym.SOPform(['x', 'y', 'z'], [[1, 1, 1], [1, 1, 0], [1, 0, 1], [0, 0, 1]])
print (b)

結果

(y | z) & (x | ~y)
(x & y) | (z & ~y)

以上。