关于从仅含一个0的二元真值表推导最小积之和表达式的疑问
关于从仅含一个0的二元真值表推导最小积之和表达式的疑问
看起来你把积之和(SOP)和利用0行推导表达式的方法搞混啦,我来帮你理清楚:
首先明确两个核心逻辑:
- 直接写**最小积之和(SOP)**是针对真值表中输出为
1的行来推导的; - 如果想用输出为
0的行来推导,需要先得到反函数的表达式,再通过逻辑转换得到原函数的SOP,或者直接推导和之积(POS)表达式。
先把你的真值表整理清晰:
给定真值表
| A | B | f |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| 0 | 1 | 1 |
方法1:直接用输出为1的行推导最小SOP
输出为1的行共有3个,每个行对应一个最小项(输入为1取原变量,输入为0取反变量):
- A=0,B=0 →
A' B' - A=1,B=1 →
A B - A=0,B=1 →
A' B
把这些项相加后化简:
f = A' B' + A' B + A B = A'(B' + B) + A B // 提取公因子A',B'+B恒等于1 = A' + A B = A' + B // 利用吸收律:A' + A B = A' + B
方法2:用输出为0的行推导(通过反函数转换)
输出为0的行只有1个:A=1,B=0,这一行对应的反函数f'的输出是1,所以反函数的最小项是A B'。
根据德摩根定律,原函数等于反函数的取反:
f = (f')' = (A B')' = A' + B
结果和方法1完全一致,验证后也完全匹配真值表。
你之前得到的A + B'其实是反函数f'的表达式,它和原函数的真值表完全相反,这就是问题所在——你误把反函数的表达式当成了原函数的SOP。
备注:内容来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

