Sympy玩轉(zhuǎn)邏輯符號(hào)運(yùn)算

讀《計(jì)算機(jī)科學(xué)精粹》一書(shū)的時(shí)候,發(fā)現(xiàn)很多時(shí)候需要用到符號(hào)運(yùn)算,本來(lái)想自己寫(xiě)一個(gè)的,后來(lái)發(fā)現(xiàn)sympy 把事情都做好了,而且sympy在 jupyter scipy-notebook 里面就有,用起來(lái)實(shí)在是非常的方便。

計(jì)算機(jī)科學(xué)精粹

下面就試做一下 第一章 1.2 邏輯中的題目,用以?huà)伌u引玉

過(guò)熱的服務(wù)器??如果服務(wù)器過(guò)熱且空調(diào)關(guān)閉,會(huì)導(dǎo)致服務(wù)器崩潰;如果服務(wù)器過(guò)熱且機(jī)箱冷卻器失效,同樣會(huì)導(dǎo)致服務(wù)器崩潰。那么服務(wù)器需要滿(mǎn)足哪些條件才能正常工作?

符號(hào)分配

'''
A: 服務(wù)器過(guò)熱。
B: 空調(diào)關(guān)閉
C: 機(jī)箱冷卻器失效
D: 服務(wù)器崩潰
'''
from sympy.logic import *
from sympy import symbols, Symbol
A = Symbol("服務(wù)器過(guò)熱")          # 聲明一個(gè)符號(hào)
B, C = symbols("空調(diào)關(guān)閉, 機(jī)箱冷卻器失效")    # 聲明多個(gè)符號(hào),用“逗號(hào)”或“空格” 分割
D = (A & B) | (A & C)       # 即 ( A AND B ) OR ( A AND C )   , D 為服務(wù)器崩潰
單獨(dú)輸出表達(dá)式 D
單獨(dú)輸出表達(dá)式 D

采用分配律對(duì)上式進(jìn)行因式分解

from sympy.logic.boolalg import simplify_logic
D = simplify_logic(D)
D
因式分解 可以用 simplify_logic
因式分解 可以用 simplify_logic

當(dāng)滿(mǎn)足條件!D服務(wù)器可以正常工作。相應(yīng)的換質(zhì)位形式為

~D
!D
!D

采用德摩根定律去除括號(hào)

'''
~A: ~服務(wù)器過(guò)熱    == 服務(wù)器沒(méi)有過(guò)熱
~B: ~空調(diào)關(guān)閉      == 空調(diào)正常工作
~C: ~機(jī)箱冷卻器失效 == 機(jī)箱冷卻正常工作
~D: ~服務(wù)器崩潰    == 服務(wù)器正常工作
'''
from sympy.logic.boolalg import to_dnf
to_dnf(~D)
去除括號(hào)
去除括號(hào)

從上式可知,只要滿(mǎn)足條件 !A(服務(wù)器沒(méi)有過(guò)熱)或 !B AND !C(空調(diào)和機(jī)箱冷卻器均正常工作),服務(wù)器就能正常工作。


小結(jié)

sympy 幾乎涵蓋了各種各樣的數(shù)學(xué)符號(hào)運(yùn)算,邏輯符號(hào)運(yùn)算只是其中小小的一部分,其它強(qiáng)大的功能值得進(jìn)一步發(fā)掘!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 選擇題部分 1.(),只有在發(fā)生短路事故時(shí)或者在負(fù)荷電流較大時(shí),變流器中才會(huì)有足夠的二次電流作為繼電保護(hù)跳閘之用。...
    skystarwuwei閱讀 14,418評(píng)論 0 7
  • 專(zhuān)業(yè)考題類(lèi)型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚(yú)閱讀 10,679評(píng)論 0 13
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 12,523評(píng)論 6 13
  • 花的一生是什么樣的?今天給大家分享了關(guān)于一朵花的一生,突然想起來(lái)不定主題名字,讓大家自由發(fā)揮想象結(jié)合自己的理解自己...
    銀爾環(huán)閱讀 436評(píng)論 0 2
  • 有凈化才有精華。 那些普通的人,那些窮人, 他們都把他們的時(shí)間大部分時(shí)間消耗在了。評(píng)價(jià)這個(gè)人怎么樣那個(gè)人怎么樣, ...
    心時(shí)代第一執(zhí)行官唐堯閱讀 265評(píng)論 0 0

友情鏈接更多精彩內(nèi)容