1
RecursiveG 2023-03-29 10:21:26 +08:00
基本就是观察,用最少的矩形覆盖并仅覆盖所有 1 。这个矩形是可以跨边界的(类似吃豆人)。
你可以画个 `BD+!B!D` 的卡诺图感受一下。 |
2
brader OP @RecursiveG 我知道圈的 1 要尽量大,但是我不明白的是,这个图得到的为什么是 F=AB+BC ,而不是 F=AB+CD 、F=AC+CD 之类的
|
3
jmc891205 2023-03-29 10:33:26 +08:00
用卡诺图化简逻辑函数的步骤[1]:
- 如果表达式为最小项表达式,则可直接填入卡诺图 - 如表达式不是最小项表达式,但是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入。 - 合并相邻的最小项,即根据下述原则画圈 - 尽量画大圈,但每个圈内只能含有 2 n 2^{n}( n=0,1,2,3……)个相邻项。要特别注意对边相邻性和四角相邻性。 圈的个数尽量少。 - 卡诺图中所有取值为 1 的方格均要被圈过,即不能漏下取值为 1 的最小项。 - 在新画的包围圈中至少要含有 1 个未被圈过的 1 方格,否则该包围圈是多余的。 - 写出化简后的表达式。每一个圈写一个最简与项,规则是,取值为 l 的变量用原变量表示,取值为 0 的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。 在进行化简时,如果用图中真值为 0 的项更方便,可以用他们来处理,方法和真值取 1 时一样,只是结果要再做一次求反。 [1]: https://zh.wikipedia.org/wiki/%E5%8D%A1%E8%AF%BA%E5%9B%BE#%E7%94%A8%E5%8D%A1%E8%AF%BA%E5%9B%BE%E5%8C%96%E7%AE%80%E9%80%BB%E8%BE%91%E5%87%BD%E6%95%B0%E7%9A%84%E6%AD%A5%E9%AA%A4 |
4
1647846714 2023-03-29 10:39:32 +08:00
@brader 找 1 ? 横这的那个,AB 对应 11 ,CD 全都取到了所以是 AB ;圈的那个,AB 对应 01 和 11,B 是 1 ,CD 对应的是 11 和 10 ,C 是 1 ,所以是 BC
|
5
oldshensheep 2023-03-29 10:45:13 +08:00 via Android
都快忘了,看了维基百科,现学现卖。
横着的框,当且仅当 K=AB 时 K=1 1100, 1101, 1111, 1110 = 1 K=ABCD 方框,当且仅当 K=BC 时 K=1 0111, 0110, 1111, 1110 = 1 K=ABCD 合起来就是 F=AB+BC 其实就是找圈圈中恒为 1 的字母 |
6
llr8031 2023-03-29 11:06:42 +08:00
@brader 1*4 的矩形里,当 AB=1 时,不论 C 和 D 取什么,结果都为 1 ,也就是和 CD 没关系,故得 AB 。
同理,2*2 得矩形里,当 BC=1 时,A 和 D 的取值不论为什么,结果都为 1 ,也就是和 CD 没关系,故得 BC 简单的说,找矩形框里恒为 1 的信号,每个矩形框找一组把他们与起来,最后把所有的结果或 |
8
brader OP @jmc891205
@1647846714 @oldshensheep 感谢各位,听君一言如醍醐灌顶,我总结了各位给的答案,按自己的理解去套用了几个题目,都能得到正确答案,那应该没错了,我说一下我总结的东西,不对的地方欢迎指正: 每一个圈中,恒为 1 或 0 ( 0 的用反变量表示)的变量留下来相与,然后将不同的圈进行逻辑加。 例 1:如我的提问,横圈( AB 在 4 个格子都是 1 ,留下来相与)+方圈( BC 在 4 个格子都是 1 ,留下来相与),最后得到 AB+BC 例 2: 下面的圈( AB 在 2 个格子都是 1 ,留下来相与)+上面的圈( A 在 2 个格子都是 0 ,取!A ,C 在 2 个格子都是 1 ,留下来相与),最后得到 AB+!AC |