(去你丫的离散数学)
首先,我们需要理解主合取范式(CNF)和主析取范式(DNF)的定义:
-
主合取范式(CNF):是一个逻辑公式,它是一系列子句的逻辑与(合取),每个子句是一系列文字的逻辑或(析取)。文字是变量或其否定。
-
主析取范式(DNF):是一个逻辑公式,它是一系列子句的逻辑或(析取),每个子句是一系列文字的逻辑与(合取)。文字是变量或其否定。
然后,我们可以根据真值表得出公式的主合取范式和主析取范式:
-
得出主合取范式:查看真值表中使得公式值为
假
的行,对于这些行,取变量值为真
的变量的否定,和变量值为假
的变量,将它们用逻辑或(析取)连接起来形成一个子句,然后将所有子句用逻辑与(合取)连接起来,就得到了主合取范式。 -
得出主析取范式:查看真值表中使得公式值为
真
的行,对于这些行,取变量值为真
的变量,和变量值为假
的变量的否定,将它们用逻辑与(合取)连接起来形成一个子句,然后将所有子句用逻辑或(析取)连接起来,就得到了主析取范式。
例题:写出公式(p∨q)→¬r的真值表, 并依据真值表给出其主合取范式、主析取范式及其公式的类型。
首先,我们可以写出公式(p∨q)→¬r的真值表:
p | q | r | p∨q | (p∨q)→¬r |
---|---|---|---|---|
T | T | T | T | F |
T | T | F | T | T |
T | F | T | T | F |
T | F | F | T | T |
F | T | T | T | F |
F | T | F | T | T |
F | F | T | F | T |
F | F | F | F | T |
然后,我们可以根据真值表得出公式的主合取范式和主析取范式:
- 主合取范式(CNF):第1,3,5行为假,p,q,r的值分别是111,101,011,取反之后就是000,010,100, 所以应该是(¬p∨¬q∨¬r)∧(¬p∨q∨¬r)∧(p∨¬q∨¬r)
- 主析取范式(DNF):第2,4,6,7,8行为假,p,q,r的值分别是110,100,010,001,000。所以应该是(p∧q∧¬r)∨(p∧¬q∧¬r)∨(¬p∧q∧¬r)∨(¬p∧¬q∧r)∨(¬p∧¬q∧¬r)