你需要知道:
离散数学中子句和短语的定义;
文字的或是子句,文字的与是短语;
为了能够化开括号,你需要知道基本的逻辑运算规律和这个公式:
P
→
Q
=
¬
P
∨
Q
P \to Q = \neg P \vee Q
P→Q=¬P∨Q
这个公式要用自然语言来描述相当抽象,姑且认为在二值逻辑世界中,真值表相同就等于同一个东西吧。
以下是具体思路:
思路描述:
离散说法:
将公式去括号;
使用 A ∨ B ∧ C = ( A ∨ B ) ∧ ( A ∨ C ) A\vee B\wedge C = (A\vee B)\wedge(A\vee C) A∨B∧C=(A∨B)∧(A∨C) 公式将公式化为子句的合取形式,再利用 A ∧ ¬ A = 0 A \wedge \neg A = 0 A∧¬A=0求主合取范式;
或直接是析取形式,再利用 A ∨ A ‾ = 1 A \vee \overline{A} = 1 A∨A=1求主析取范式;
数电说法:
将函数去括号;
使用 A + B C = ( A + B ) ( A + C ) A+BC = (A+B)(A+C) A+BC=(A+B)(A+C)公式将表达式化为或与式,再利用 A ⋅ A ‾ = 0 A \cdot \overline{A} = 0 A⋅A=0求最大项表达式;
或直接是与或式,再利用 A + A ‾ = 1 A + \overline{A} = 1 A+A=1求最小项表达式;
举栗子:
比如一个式子化成了这样:
P ∧ Q ∨ R P \wedge Q \vee R P∧Q∨R
如果要求主析取范式,将式子以 ∨ \vee ∨分割,即 ( P ∧ Q ) ∨ ( R ) (P \wedge Q) \vee (R) (P∧Q)∨(R) (在不改变式子运算顺序的情况下),我们知道,主析取范式每一个短语要包含全部变量,显然, ( P ∧ Q ) (P \wedge Q) (P∧Q)和 ( R ) (R) (R)都不包含所有的三个变量,那如何呢?
我们的理解是,某部分式子如果不提及其他变量,那么其意思就是“在这部分中,未提及的变量是 X X X还是 ¬ X \neg X ¬X都无所谓,即 ∧ ( X ∨ ¬ X ) \wedge (X \vee \neg X) ∧(X∨¬X)”。
所以,对于各短语,我们都可以这样,于是就有了
(
P
∧
Q
)
∧
(
R
∨
¬
R
)
∨
(
R
)
∧
(
P
∨
¬
P
)
∧
(
Q
∨
¬
Q
)
(P \wedge Q)\wedge (R \vee \neg R) \vee (R)\wedge (P \vee \neg P)\wedge (Q \vee \neg Q)
(P∧Q)∧(R∨¬R)∨(R)∧(P∨¬P)∧(Q∨¬Q)
化开就有了
(
P
∧
Q
∧
R
)
∨
(
P
∧
Q
∧
¬
R
)
∨
(
P
∧
¬
Q
∧
R
)
∨
(
¬
P
∧
¬
Q
∧
R
)
∨
(
¬
P
∧
Q
∧
R
)
(P \wedge Q\wedge R)\vee (P \wedge Q \wedge \neg R) \vee (P\wedge \neg Q \wedge R)\vee(\neg P \wedge \neg Q \wedge R)\vee (\neg P\wedge Q \wedge R)
(P∧Q∧R)∨(P∧Q∧¬R)∨(P∧¬Q∧R)∨(¬P∧¬Q∧R)∨(¬P∧Q∧R)
同理,可以求主合取范式,不过要先进行这步:
P ∧ Q ∨ R = ( P ∨ R ) ∧ ( Q ∨ R ) P \wedge Q \vee R = (P \vee R)\wedge (Q \vee R) P∧Q∨R=(P∨R)∧(Q∨R)
这样,公式就以
∧
\wedge
∧分割了(不可以
(
P
)
∧
(
Q
∨
R
)
(P) \wedge (Q \vee R)
(P)∧(Q∨R)这样划,这样改变了运算顺序,强行让
Q
∨
R
Q \vee R
Q∨R先进行了运算),接下来的操作就与之前一致了;
(
P
∨
R
)
∧
(
Q
∨
R
)
=
(
(
P
∨
R
)
∨
(
Q
∧
¬
Q
)
)
∧
(
(
Q
∨
R
)
∨
(
P
∧
¬
P
)
)
=
(
(
P
∨
R
∨
Q
)
∧
(
P
∨
R
∨
¬
Q
)
)
∧
(
(
P
∨
R
∨
Q
)
∧
(
¬
P
∨
R
∨
Q
)
)
A
+
B
C
=
(
A
+
B
)
(
A
+
C
)
↔
(
P
∨
R
)
作
为
A
\begin{aligned} (P \vee R)\wedge (Q \vee R) &= ((P \vee R)\vee(Q \wedge \neg Q))\wedge ((Q \vee R)\vee(P \wedge \neg P))\\ &= ((P \vee R\vee Q) \wedge (P \vee R\vee\neg Q))\wedge ((P \vee R\vee Q) \wedge (\neg P \vee R\vee Q))\\ \\ & \space A+BC = (A+B)(A+C) \leftrightarrow (P \vee R)作为A \end{aligned}
(P∨R)∧(Q∨R)=((P∨R)∨(Q∧¬Q))∧((Q∨R)∨(P∧¬P))=((P∨R∨Q)∧(P∨R∨¬Q))∧((P∨R∨Q)∧(¬P∨R∨Q)) A+BC=(A+B)(A+C)↔(P∨R)作为A
总结一下:
化到这里的时候,对于一个子句或短语,没有的变量就是“啥都行”
(
P
∧
Q
)
∨
(
R
)
(P \wedge Q) \vee (R)
(P∧Q)∨(R)中,
(
P
∧
Q
)
(P \wedge Q)
(P∧Q)意思就是
P
∧
Q
P \wedge Q
P∧Q这个短语再与个啥都行
(
P
∧
Q
∧
R
)
∨
(
P
∧
Q
∧
¬
R
)
⇒
(
P
∧
Q
)
(P \wedge Q\wedge R)\vee (P \wedge Q \wedge \neg R) \Rightarrow (P \wedge Q)
(P∧Q∧R)∨(P∧Q∧¬R)⇒(P∧Q)
P
∧
Q
∨
R
=
(
P
∨
R
)
∧
(
Q
∨
R
)
P \wedge Q \vee R = (P \vee R)\wedge (Q \vee R)
P∧Q∨R=(P∨R)∧(Q∨R)
(
P
∧
Q
)
∨
(
R
)
(P \wedge Q) \vee (R)
(P∧Q)∨(R)中,
P
∨
Q
P \vee Q
P∨Q意思就是
P
∨
Q
P \vee Q
P∨Q这个子句再或个啥都行
( . . . ) ⇒ ( . . . ) (...)\Rightarrow (...) (...)⇒(...)
这样貌似就不用上面那么复杂了,直接可以写出答案,在数电中一样适用(其实是一样的)。