SymPy - Mantıksal İfadeler

Boole fonksiyonları şurada tanımlanır: sympy.basic.booleanarg module. Standart python operatörleri & (And), | ile Boole ifadeleri oluşturmak mümkündür. (Veya), ~ (Değil) ve ayrıca >> ve << ile. Boole ifadeleri, SymPy'nin çekirdek modülünde tanımlanan Basic sınıfından miras alınır.

BooleanTrue işlevi

Bu işlev, çekirdek Python'daki gibi True işlevine eşdeğerdir. S.true tarafından alınabilen bir tekil döndürür.

>>> from sympy import * 
>>> x=sympify(true) 
>>> x, S.true

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Doğru doğru)

BooleanFalse işlevi

Benzer şekilde, bu işlev Python'daki Boolean False işlevine eşdeğerdir ve S.false tarafından erişilebilir.

>>> from sympy import * 
>>> x=sympify(false) 
>>> x, S.false

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Yanlış, Yanlış)

Ve işlev

Mantıksal bir AND işlevi, iki bağımsız değişkenini değerlendirir ve herhangi biri False ise False döndürür. İşlev, & operatörü öykünür.

>>> from sympy import * 
>>> from sympy.logic.boolalg import And 
>>> x,y=symbols('x y') 
>>> x=True 
>>> y=True 
>>> And(x,y), x"&"y

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Doğru doğru)

>>> y=False 
>>> And(x,y), x"&"y

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Yanlış, Yanlış)

Veya işlev

Bu işlev, iki Boole bağımsız değişkenini değerlendirir ve bunlardan herhangi biri True ise True döndürür. | operatör, davranışını uygun şekilde taklit eder.

>>> from sympy import * 
>>> from sympy.logic.boolalg import Or 
>>> x,y=symbols('x y') 
>>> x=True 
>>> y=False 
>>> Or(x,y), x|y

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Doğru doğru)

>>> x=False 
>>> y=False 
>>> Or(x,y), x|y

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Yanlış, Yanlış)

İşlev Değil

Mantıksal Değil işlevi, Boole bağımsız değişkeninin olumsuzlanmasıyla sonuçlanır. Argümanı False ise True, True ise False döndürür. Operatör, İşlev Değil'e benzer bir işlem gerçekleştirir. Aşağıdaki örnekte gösterilmektedir -

>>> from sympy import * 
>>> from sympy.logic.boolalg import Or, And, Not 
>>> x,y=symbols('x y') 
>>> x=True 
>>> y=False 
>>> Not(x), Not(y)

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Yanlış doğru)

>>> Not(And(x,y)), Not(Or(x,y))

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Doğru yanlış)

Xor İşlevi

Mantıksal XOR (özel OR) işlevi, tek sayıda bağımsız değişken Doğru ve geri kalanlar Yanlış ise True döndürür ve bağımsız değişkenlerin çift sayısı Doğru ve geri kalanlar Yanlış ise Yanlış döndürür. Benzer işlem ^ operatörü tarafından gerçekleştirilir.

>>> from sympy import * 
>>> from sympy.logic.boolalg import Xor 
>>> x,y=symbols('x y') 
>>> x=True 
>>> y=False

>>> Xor(x,y), x^y

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Doğru doğru)

>>> a,b,c,d,e=symbols('a b c d e') 
>>> a,b,c,d,e=(True, False, True, True, False) 
>>> Xor(a,b,c,d,e)

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

Doğru

Yukarıdaki durumda, üç (tek sayı) bağımsız değişken True'dur, bu nedenle Xor doğru döndürür. Ancak, Doğru bağımsız değişken sayısı çift ise, aşağıda gösterildiği gibi Yanlış ile sonuçlanır -

>>> a,b,c,d,e=(True, False, False, True, False) 
>>> Xor(a,b,c,d,e)

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

Yanlış

Nand İşlevi

Bu işlev, Mantıksal NAND işlemini gerçekleştirir. Argümanlarını değerlendirir ve herhangi biri False ise True, hepsi True ise False döndürür.

>>> from sympy import * 
>>> from sympy.logic.boolalg import Nand 
>>> a,b,c=symbols('a b c') 
>>> a,b,c=(True, False, True) 
>>> Nand(a,b,c), Nand(a,c)

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Doğru yanlış)

Nor Fonksiyonu

Bu işlev, Mantıksal NOR işlemini gerçekleştirir. Argümanlarını değerlendirir ve herhangi biri True ise False, hepsi False ise True döndürür.

>>> from sympy import * 
>>> from sympy.logic.boolalg import Nor 
>>> a,b,c=symbols('a b c') 
>>> a,b,c=(True, False, True) 
>>> Nor(a,b,c), Nor(a,c)

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Yanlış, Yanlış)

SymPy, Xor için ^ operatörü, Not için ~ | için Or ve & And işlevleri için kolaylık olarak, Python'daki normal kullanımları bitsel operatörler gibidir. Bu nedenle, işlenenler tamsayı ise, sonuçlar farklı olacaktır.

Eşdeğer işlev

Bu fonksiyon eşdeğerlik ilişkisini döndürür. Eşdeğer (A, B) Doğru ise ancak ve ancak A ve B'nin her ikisi de Doğru veya Yanlış ise. Tüm bağımsız değişkenler mantıksal olarak eşdeğer ise işlev True döndürür. Aksi takdirde False değerini döndürür.

>>> from sympy import * 
>>> from sympy.logic.boolalg import Equivalent 
>>> a,b,c=symbols('a b c') 
>>> a,b,c=(True, False, True) 
>>> Equivalent(a,b), Equivalent(a,c)

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Yanlış doğru)

ITE işlevi

Bu işlev, bir programlama dilinde If then else cümlesi olarak hareket eder .ITE (A, B, C), A doğru ise B'nin sonucunu değerlendirir ve döndürür, aksi takdirde C'nin sonucunu döndürür. Tüm bağımsız değişkenler Boole olmalıdır.

>>> from sympy import * >>> from sympy.logic.boolalg import ITE >>> a,b,c=symbols('a b c') >>> a,b,c=(True, False, True) 
>>> ITE(a,b,c), ITE(a,c,b)

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

(Yanlış doğru)