x = (a & b & d) | ~(a | ~b | c) | (~c & ~d & a) | (c & d)
~ = not
& = and
| = or
如何简化这样的功能,我该怎么办? 我尝试了一些简化的程序,但我不理解它们。
答案 0 :(得分:1)
您应该为所涉及的变量和最终输出写出真值表。
然后,对于事实表中的每一行都是真的,你可以根据变量的状态写一个逻辑方程来重现那个逻辑“一”,通常是一个适当输入的AND函数和反函数投入。
假设只有3行具有true或逻辑1输出。 这意味着你有三个逻辑方程式。 你可以通过将这三个方程与OR运算符连接起来完成这项工作。
通过查看真值表,您可能会注意到逻辑真行的输出不依赖于所有变量。这是简化表达的一种方法。
答案 1 :(得分:-1)
另一种简化方法是将方程视为带乘法和加法的代数问题,在此使用分配定律。我将对“或”功能使用“ +”号,以便于查看连接。
例如,您的第一个和最后一个词可以写成:
a&b&d + c&d
您可以将其写为(a&b + c)&d
有时会有所帮助
假设您有术语E和F,它们应“在一起”而不是“或”在一起。
E =(〜a | b |〜c)
F =〜c&〜d&a
您将写E&F =
(〜a + b +〜c)&(〜c&〜d&a)
然后可以将其扩展为:
=〜a&(〜c&〜d&a)+ b&(〜c&〜d&a)+〜c&(〜c&〜d&a)
因为〜a&a始终为0,〜c&〜c始终为1
E&F = b&〜c&〜d&a +〜d&a
= a & b & ~c & ~d + a & ~d
但可以进一步简化
E&F =(a&〜d)&(b&〜c + 1),但是b&〜c + 1总是= 1,所以
E&F = a&〜d
这项技术在简化类似于您上面给出的逻辑方程式时很有用。
请记住〜(a + b)=〜a&〜b,我忘记了,因此不得不使用与上面发布的示例稍有不同的示例