我有一個複雜的條件下,隨着AND和OR,例如: (c1 OR c2) AND (c3 OR c4 OR c5)
轉化與AND和OR的邏輯條件
這相當於:
(c1 AND c3) OR (c1 AND c4) OR (c1 AND c5) OR (c2 AND c3) OR (c2 AND c4) OR (c2 AND c5)
這條件可以是然後發生爆炸的條件的列表只包含AND:
c1 AND c3
c1 AND c4
c1 AND c5
c2 AND c3
c2 AND c4
c2 AND c5
這是變換始終可能嗎?和什麼算法可以做到這一點?
條件被存儲在內存中的樹木,如:
OR
/\
AND c1
/! \
c2 c3 c4
我認爲我們應該試圖「移動」或向上的樹,用分配律:
(a OR b) AND c = (a AND c) OR (b AND c)
。
這是一個很好的方法嗎?
這可能只解決了存儲在列表NOT ONLY對,但也有1或3,4等數字通過AND組合。示例條件c1 AND c2 AND c3。不能簡化。 – 2013-02-19 12:06:39