了解一下簡單析取式和簡單合取式,簡單析取式說白了就是有限個命題變項或者他們的否定用符號v連線起來的式子,比如p,¬p,pvq,pv¬q等,簡單合取式類似,但它用的符號是λ。析取正規化簡單來說就是幾個簡單析取式的組合,合取正規化類似。
而主合取和主析取略微有些不同,主析取是由極小項及符號v組成,極小項就是簡單合取式,說白了主析取就是由符號v連線幾個簡單合取式組成,且他的每乙個構成單位(極小項)的命題變項的個數都是一樣的,舉個例子:(pλq)v(qλr),這不是主析取,因為這個式子總共有三個命題變項,p,q,r,第乙個單元pλq並未包含r,而第二個式子qλr裡也沒有p,不完整,不能成為主析取正規化,這個時候我們想要讓他成為主析取正規化則要進行操作,對第乙個式子加上缺少的項r,怎麼加呢?答案是將第乙個式子用(pλq)λ(rv¬r)代替,因為極小項對應成真賦值交上乙個rv¬r原式並未改變,然後合理運用分配律變換式子,使其變成主析取正規化。主合取剛好相反,主合取對應極大項,成假賦值,對應如下:
主析取–極小項(簡單合取式)–成真賦值(式子λ(xv¬x))
析——小——真
主合取–極大項(簡單析取式)–成假賦值(式子v(xλ¬x))
合——大——假
析取正規化變成主析取的時候結果出現的項對應的角碼即其成真賦值,未出現的為成假賦值,合取正規化變成主合取的結果出現的項對應的角碼即其成假賦值,未出現的是成真賦值。(n個項對應2的n次方種情況,其二進位制角碼轉換成十進位制數字即下標,如000對應m。,001對應m1等)
C 實現求主析取正規化 主合取正規化
離散數學第一次上機實驗,突擊學完什麼是主析取正規化和主合取正規化之後粗略地想了下實現的思路。第一步自然是把輸入的式子轉換成字尾表示式。結合資料結構書上對基本四則運算的 和前人的思路勉強寫出來乙個,但還是有很多地方可能一轉頭就會忘了怎麼實現。轉換成字尾表示式之後的事情就顯得輕鬆多了。下面貼 inclu...
主析取正規化和主合取正規化的c 求解程式
主要思想是 先求真值表,再根據真值表輸出主析取正規化和主合取正規化。用!來表示非,用小寫v表示析取,用 來表示合取,用 來表示雙條件,用 來表示條件,用大寫字母來表示命題變元。真值表的求解 根據命題的個數n,得出所有命題變元賦值的情況個數sum,例如n 4個命題變元,則有sum 2 4種情況,並將所...
大二(上)離散數學 主析取正規化與主合取正規化
include include include include include define n 50 void panduan int b n int f 賦值函式 inttkh char sz n char ccu n int icu n int h0 分級運算函式 intfkh char sz...