擅长:python、mysql、java
<p>好吧,也许这不是最具说明性的例子,但我会把它作为一个例子。
卡诺图是一个强大的工具,以简化二进制函数,可以应用于许多类似的情况。你知道吗</p>
<p>TLDR公司:</p>
<pre><code># for brewity, s1 = scenarioOne and s2=scenarioTwo
if (A and not s1 and not s2):
actionA
elif (B and not s1 and (not A or s2)):
actionB
else:
actionC
</code></pre>
<p>这是真值表。行是AB值,列是SCENARIONE(s1)+scenarioTwo(s2)</p>
<pre><code>actionA
00 01 11 10
00
01
11 1
10 1
actionB
00 01 11 10
00
01 1 1
11 1
10
actionC
00 01 11 10
00 1 1 1 1
01 1 1
11 1 1
10 1 1 1
</code></pre>
<p>首先,三个动作是独占的,完全覆盖了输入空间。
现在,第一个表:两个1在一起,可以表示为:</p>
<pre><code>A = !s1 !s2 A
</code></pre>
<p>第二张桌子:两对</p>
<pre><code>B = !s1 s2 B | !s1 !A B = !s1 B (!A | s2)
</code></pre>
<p>剩下的是C,但如果我们想要公式,它是三个元素:右半部分、顶行和底行中间的对:</p>
<pre><code>C = s1 | !A !B | A !B s2 = s1 | !B (s2 | !A)
</code></pre>