2012-07-15 26 views
3

說我有一個布爾公式 一個或(b和c)如何將布爾公式轉化爲CNF或DNF

我會希望將其轉換爲CNF 即 (a和b)或(一和c)

是否有任何現有的庫可以實現這一目標?

+0

我假設你的「公式」是某種形式,這不是你的標準C#if(a ||(b && c))'條件? – 2012-07-15 12:08:30

+1

你如何表示公式(由一個字符串讓我們說吧?) – Shai 2012-07-15 12:10:04

+0

我在想,如果有一個庫支持這一點,將應該一種方式來編碼公式..如 lib.or(a,lib.and (公元前)) – william007 2012-07-15 12:44:01

回答

1

如果你想自己實現它,這裏是一個如何玩Linq表達式公式的例子。 sample program派生和簡化公式,這不完全是你想要做的,但是足夠接近有用。

P.S ..:如果我正確記住我的邏輯,有多種方法可以用CNF或DNF表達同一公式,並給出一個起始公式。您可能需要將其歸一化,以獲得始終如一的內容。