![]() | 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 lucinakushinada 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 的信号,每个矩形框找一组把他们与起来,最后把所有的结果或 |
![]() | 7 lucinakushinada 2023-03-29 11:08:44 +08:00 @llr8031 勘误一下,AB=1 ,CD=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 |
![]() | 10 lucinakushinada 2023-03-29 12:46:09 +08:00 @brader 是的,恒为 0 的也要找出来,归纳的没有问题 |