希赛考试网
首页 > 软考 > 软件设计师

用真值表求主范式

希赛网 2024-07-02 11:08:09

在布尔代数中,我们常常需要通过一个公式来表示一个逻辑电路的输出和输入间的关系。这个公式一般是由一些运算符和变量组成的,这些运算符包括非(NOT)、与(AND)、或(OR)等。这样的公式被称为布尔表达式。

在本文中,我们将介绍一种用真值表求主范式的方法。主范式通常用于化简布尔表达式,它是一个由所有输出为“1”时对应的输入项取反后的积(Boolean sum)和式(Boolean product)组成的表达式。

首先,让我们来看看什么是真值表。真值表是一种用来表示一个布尔表达式的完整输出和变量组合的表格形式。表格中的每一行代表一个输入状态,每一列代表输入变量或输出结果。每个单元格包含对应输入状态下的布尔表达式的输出结果。例如,以下是一个由两个变量 $x$ 和 $y$ 构成的真值表:

|x|y|f(x,y)|

|-|-|------|

|0|0| 1 |

|0|1| 0 |

|1|0| 0 |

|1|1| 1 |

其中,上方的第一行和第二行代表输入变量 $x$ 和 $y$ 取值为 $0$ 和 $1$ 时的状态,最右边的一列代表布尔表达式 $f(x,y)$ 对应的输出。

现在,我们来看如何通过真值表求主范式。假设我们有一个由两个变量 $x$ 和 $y$ 构成的布尔表达式,符合以下真值表:

|x|y|f(x,y)|

|-|-|------|

|0|0| 0 |

|0|1| 1 |

|1|0| 1 |

|1|1| 0 |

步骤如下:

第一步,标记所有真值表输出为 "1" 的行。

|x|y|f(x,y)|

|-|-|------|

|0|0| 0 |

|0|1| 1 ✔ |

|1|0| 1 ✔ |

|1|1| 0 |

第二步,对于每个被标记的行,找到它所对应的输入变量。将每行输入变量取反,并用乘积符号相连。例如,在上面的真值表中,我们找到两个被标记的行,对应的输入变量为 $x$ 和 $\lnot y$。所以我们可以得到以下主范式:

$$f(x,y)=(x\land \lnot y)$$

因为只有两个输入变量 $x$ 和 $y$,所以上面的主范式只包括了一个取反后的积(Boolean sum)项。在具有更多变量的情况下,我们可能需要更多的项构成主范式。

总之,用真值表求主范式的步骤如上,这是一个比较简单的方法。但是,它只适用于比较小的布尔表达式。在实际应用中,我们通常使用卡诺图(Karnaugh map)和显然积(Boolean sum-of-products)等更高级的算法来化简布尔表达式。

软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件