1

私は書くことができないようです (疑似コード): X==True および Y==True または Y==False のすべての X,Y に対して X および Y を出力します。

>>> from pyDatalog import pyDatalog
>>> pyDatalog.create_terms('X,Y')
>>> print((X==True)
X   
----
True
>>> print((X==True) & (Y==True))
X    | Y   
-----|-----
True | True

目標は、次のようなものを書くことです。

>>> print((X==True) & ((Y==True) or (Y==False)))
X    | Y   
-----|-----
True | True
True | False

代わりに、これは前のコマンドが返したものを正確に出力します。

これどうやってするの?

4

2 に答える 2

1

X と Y の両方のブール値のセットを調べて、X && Y の結果を出力することを意味する場合、これは機能するはずです。

from pyDatalog import pyDatalog

allValues = [True, False]

pyDatalog.create_terms('result, X, Y, R, table')

(result[X, Y] == True) <= (X == True) & (Y == True)
(result[X, Y] == False) <= (X == False)
(result[X, Y] == False) <= (Y == False)

table(X, Y, R) <= (X._in(allValues)) & (Y._in(allValues)) & (R == result[X, Y])

print(table(X, Y, R))

これは出力です:

X     | Y     | R    
------|-------|------   
False | True  | False   
False | False | False  
True  | True  | True  
True  | False | False
于 2016-04-13T00:19:13.430 に答える