我必须制作一个具有 5 个输入和 3 个输出的真值表,如下所示:
A B C D E red green blue
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 1
0 0 0 1 0 0 0 1
.
.
.
.
1 1 0 1 0 0 1 1
.
.
.
1 1 1 1 1 1 0 1
等(总共32行,rgb表中的数字表示二进制中每行1的数量,即第1行1 0 1 0有三个1,所以二进制中的三个是0 1 1)。
我想在 Atanua ( http://sol.gfxile.net/atanua/index.html ) 工具中展示它的结果(例如,当我按下按钮 E 时,蓝光会发光,当按下 ABD 时绿色和蓝色的光会发光等等)。但是有一个要求,我只能使用 AND、OR、NOT 操作数,并且每个操作数只能有两个输入。尽管我使用卡诺图将其最小化,但对于这么多记录,每个输出的结果仍然很长(尤其是最后一个)。
我试图通过将所有三个输出布尔函数合而为一来进一步简化它,最小化过程结束得很好:
A + B + C + D
它似乎工作正常(但由于只有一个输出光,它只能分别在红绿蓝列中工作)。我担心的是我想要三个输出(三个灯,而不是一个),并且在这种最小化之后甚至可能吗?在阿塔努阿有一个好的解决方案吗?还是我必须制作 3 个单独的布尔函数,无论它们有多长(即使在最小化之后也有很多)?
编辑:整个真值表:)
A B C D E R G B
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 1
0 0 0 1 0 0 0 1
0 0 0 1 1 0 1 0
0 0 1 0 0 0 0 1
0 0 1 0 1 0 1 0
0 0 1 1 0 0 1 0
0 0 1 1 1 0 1 1
0 1 0 0 0 0 0 1
0 1 0 0 1 0 1 0
0 1 0 1 0 0 1 0
0 1 0 1 1 0 1 1
0 1 1 0 0 0 1 0
0 1 1 0 1 0 1 1
0 1 1 1 0 0 1 1
0 1 1 1 1 1 0 0
1 0 0 0 0 0 0 1
1 0 0 0 1 0 1 0
1 0 0 1 0 0 1 0
1 0 0 1 1 0 1 1
1 0 1 0 0 0 1 0
1 0 1 0 1 0 1 1
1 0 1 1 0 0 1 1
1 0 1 1 1 1 0 0
1 1 0 0 0 0 1 0
1 1 0 0 1 0 1 1
1 1 0 1 0 0 1 1
1 1 0 1 1 1 0 0
1 1 1 0 0 0 1 1
1 1 1 0 1 1 0 0
1 1 1 1 0 1 0 0
1 1 1 1 1 1 0 1
每种颜色的卡诺图(~是非门,*是与,+或):
红色:
BCDE+ACDE+ABDE+ABCE+ABCD
绿色:
~A~BDE+~AC~DE+~ACD~E+~BCD~ E+~AB~CE+B~CD~E+BC~D~E+A~B~CE+A~B~CD+A~BC~D+AB~C~D
蓝色:
~A~B~C~DE+~A~B~CD~E+~A~BC~D~E+~A~BCDE+~AB~C~D~E+~AB~CDE+~ABC~DE+~ABCD~E +A~B~C~D~E+A~B~CDE+A~BC~DE+A~BCD~E+AB~C~DE+AB~CD~E+ABC~D~E+ABCDE