SymPy - Ekspresi Logis

Fungsi Boolean didefinisikan dalam sympy.basic.booleanarg module. Dimungkinkan untuk membangun ekspresi Boolean dengan operator python standar & (And), | (Atau), ~ (Not) serta dengan >> dan <<. Ekspresi Boolean mewarisi dari kelas Basic yang didefinisikan dalam modul inti SymPy.

Fungsi BooleanTrue

Fungsi ini setara dengan True seperti pada inti Python. Ia mengembalikan singleton yang bisa diambil oleh S.true.

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

Potongan kode di atas memberikan output berikut -

(Betul betul)

Fungsi BooleanFalse

Demikian pula, fungsi ini setara dengan Boolean False di Python dan dapat diakses oleh S.false

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

Potongan kode di atas memberikan output berikut -

(Salah, Salah)

Dan fungsinya

Fungsi logika AND mengevaluasi dua argumennya dan mengembalikan False jika salah satunya adalah False. Fungsi mengemulasi & operator.

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

Potongan kode di atas memberikan output berikut -

(Betul betul)

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

Potongan kode di atas memberikan output berikut -

(Salah, Salah)

Atau fungsi

Fungsi ini mengevaluasi dua argumen Boolean dan mengembalikan True jika salah satunya adalah True. The | operator dengan mudah meniru perilakunya.

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

Potongan kode di atas memberikan output berikut -

(Betul betul)

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

Potongan kode di atas memberikan output berikut -

(Salah, Salah)

Tidak berfungsi

Fungsi Logical Not menghasilkan negasi dari argumen Boolean. Ia mengembalikan True jika argumennya False dan mengembalikan False jika True. Operator ~ melakukan operasi yang mirip dengan Not function. Itu ditunjukkan pada contoh di bawah ini -

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

Potongan kode di atas memberikan output berikut -

(Salah benar)

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

Potongan kode di atas memberikan output berikut -

(Benar salah)

Fungsi Xor

Fungsi Logical XOR (eksklusif OR) mengembalikan True jika bilangan ganjil dari argumen adalah True dan sisanya adalah False dan mengembalikan False jika bilangan genap dari argumen adalah Benar dan sisanya adalah False. Operasi serupa dilakukan oleh operator ^.

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

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

Potongan kode di atas memberikan output berikut -

(Betul betul)

>>> 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)

Potongan kode di atas memberikan output berikut -

Benar

Dalam kasus di atas, tiga argumen (angka ganjil) adalah True, maka Xor mengembalikan true. Namun, jika jumlah argumen True genap, itu menghasilkan Salah, seperti yang ditunjukkan di bawah ini -

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

Potongan kode di atas memberikan output berikut -

Salah

Fungsi Nand

Fungsi ini menjalankan operasi Logical NAND. Ini mengevaluasi argumennya dan mengembalikan True jika ada di antaranya Salah, dan Salah jika semuanya Benar.

>>> 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)

Potongan kode di atas memberikan output berikut -

(Benar salah)

Atau Fungsi

Fungsi ini menjalankan operasi Logical NOR. Ini mengevaluasi argumennya dan mengembalikan False jika ada yang Benar, dan Benar jika semuanya Salah.

>>> 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)

Potongan kode di atas memberikan output berikut -

(Salah, Salah)

Perhatikan bahwa meskipun SymPy menyediakan ^ operator untuk Xor, ~ untuk Not, | untuk Or dan & untuk And berfungsi sebagai kenyamanan, penggunaan normalnya di Python adalah sebagai operator bitwise. Oleh karena itu, jika operan adalah bilangan bulat, hasilnya akan berbeda.

Fungsi yang setara

Fungsi ini mengembalikan relasi ekivalen. Ekuivalen (A, B) adalah True jika dan hanya jika A dan B keduanya Benar atau keduanya Salah. Fungsi mengembalikan True jika semua argumen secara logis setara. Mengembalikan False sebaliknya.

>>> 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)

Potongan kode di atas memberikan output berikut -

(Salah benar)

Fungsi ITE

Fungsi ini bertindak sebagai klausa If then else dalam bahasa pemrograman. TITIK (A, B, C) mengevaluasi dan mengembalikan hasil dari B jika A benar, jika tidak ia mengembalikan hasil C. Semua argumen harus berupa Boolean.

>>> 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)

Potongan kode di atas memberikan output berikut -

(Salah benar)