0

小規模なデジタル システムの場合、「ドライバーが車から降りたとき (b = 車内のドライバー) にドアをロックしてはならない (a = ドア ロック) が、キーはまだ車内にある (c = キー)」という要件が与えられます。 (d = ロック レバーが閉じている). 注意: ドライバーが車内にいて (b)、ドアをロックするように要求した場合 (d)、ドアがロックされます。ロックする必要があります (a) ".

これは 2 つの部分に分けられると思いました (全体的な表現は、1. 最初の要件セットと 2. 「メモ」の部分なので、1 + 2?)

最初の部分では、ブール式は次のようになると思いました。

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

次に、両辺の補数を取ってみました: (a')' = (b'cd)'

...そして DeMorgan の法則を使用すると... a = (b'c)' + d' ...そして再び DeMorgan の法則を使用すると... a = b + c' + d'.

しかし、これは「ドライバーが車内にいるとき、またはキーが車内にないとき、またはドアロックレバーが作動していないときは、ドアがロックされるべきである」という意味ではないでしょうか。これはまったく意味がありません。

2 番目の部分 (注:) では、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 は実際には「どうでもいい」ように見えます (「~の場合でも」と表示されているため)。そのため、実際には真理値表に 2 つのエントリがある可能性があります。

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 が TRUE であると仮定すると (つまり、他のすべてのケースでドアをロックできる)、次のようになります。

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 に答える