0

对于小型数字系统,我被要求“当驾驶员下车(b = 车内驾驶员)但钥匙仍在车内(c = 钥匙内)发动机,即使驾驶员已关闭车门锁杆。(d = 锁杆已关闭)。注意:如果驾驶员在车内 (b) 并要求锁定车门 (d),则车门必须锁定(a)“。

我认为这可以分为两部分(其中整体表达是 1. 第一组要求和 2.“注意”部分,所以 1 + 2?)

对于第一部分,我认为布尔表达式应该是这样的:

a' = b' AND c AND d. 
a' = b'cd.

然后我尝试取两边的补码: (a')' = (b'cd)'

...并使用德摩根定律... a = (b'c)' + d' ...然后再次使用德摩根定律... a = b + c' + d'。

但这是否意味着“当驾驶员在车内或钥匙不在车内或门锁杆未接合时,车门应锁定。” 这根本没有意义。

在第二部分(注意:)中,我得到了 a = bd。那么,整体表达是否应该是这个与之前听起来不正确的部分的补充?然后我有:a = b + c' + d' + bd。通过类中给出的一个棘手的分配属性,我想我可以将 c' + bd 组件简化为 (c' + b)(c' + d)。那么我有 a = (c' + b)(c' + d) + b + d'。

这越来越令人困惑;如果更多,我可以简化吗?(嗯,实际上,它可能一开始就不正确!)我哪里出错了,我该在哪里停下来?

4

1 回答 1

2

我认为你最初的假设有问题,然后一切都崩溃了。你所拥有的是一个不完整的真值表:

a  b  c  d
?  0  0  0
?  0  0  1
?  0  1  0
0  0  1  1  <<< - this is the only data you have
?  1  0  0
?  1  0  1
?  1  1  0
?  1  1  1

实际上,如果你仔细阅读问题陈述,看起来 d 真的是一个“不关心”(因为它说“即使......”),所以你的真值表中实际上可能有两个条目:

a  b  c  d
?  0  0  0
?  0  0  1
0  0  1  0
0  0  1  1
?  1  0  0
?  1  0  1
?  1  1  0
?  1  1  1

另一个可能的问题是您对 a 的解释。a 并不意味着“门应该锁定”,而是意味着“门可以锁定”,因为您正在指定一个不应锁定门的情况。

如果我们假设对于上述所有未知情况 a 为真(即在所有其他情况下门可以被锁定),那么我们有:

a  b  c  d
1  0  0  0
1  0  0  1
0  0  1  0
0  0  1  1
1  1  0  0
1  1  0  1
1  1  1  0
1  1  1  1

可以表示为:

a = (b' AND c') OR b

即,只有在以下情况下,车门才能被锁定:(i) 司机在车外,钥匙不在车内;或 (ii) 司机在车内。

于 2012-09-07T15:38:25.407 回答