具有多个输入的算术布尔代数

时间:2018-09-06 07:26:33

标签: math boolean boolean-logic algebra

我一直在使用一个半字节的寄存器,其中有四个半字节W,X,Y和Z。对于一个七段LED显示器,我正尝试在CSS中复制...所有的半字节自然会收到一个0或1个脉冲;然后我使用自己拥有的布尔方程式处理每个脉冲,然后根据从七个方程式中的每个方程式得出的结果,将每个段打开(1)或关闭(0)...

我发现我可以使用以下等效项(参考:https://en.wikipedia.org/wiki/Boolean_algebra#Basic_operations)将每个布尔方程式转换为数学方程式,从而使自己的工作更加轻松

A AND B = A * B
A OR B = A + B - (A * B)
NOT A = 1 - A

其中AB只能等于0或1 ...处理两个输入时,此过程非常简单...但是一个对四个输入(例如W,X, Y和Z?

例如,我对细分A(LED显示屏顶部)的布尔方程为:

(W AND NOT(X) AND NOT(Y)) OR (W AND NOT(Z)) OR (NOT(W) AND X AND Z) OR (NOT(W) AND Y) OR (X AND Y) OR (NOT(X) AND NOT(Z))

其中W是最高有效位,而Z是最低有效位...在这种情况下处理多个输入的规则是什么?有人可以轻推一下如何进行吗?

预先感谢...

1 个答案:

答案 0 :(得分:-1)

我有点想办法想出一种方法来做到这一点...布尔方程中的AND表示很容易,而NOT表示也很容易,但是OR进程正在杀死我...

我最初没有意识到的是,可以对这些布尔方程进行求解,以消除对格式的OR引用,该格式更容易进行算术转换...

过程

  1. 我们采用布尔方程:(w AND NOT(x) AND NOT(y)) OR (w AND NOT(z)) OR (NOT(w) AND x AND z) OR (NOT(w) AND y) OR (x AND y) OR (NOT(x) AND NOT(z))
  2. 接下来,我们将其放入WolframAlpha.com的引擎中……直到我对其进行测试之后,我才意识到WolframAlpha能够重写逻辑方程式……并且还能够使用尊重AND门和非门...结果,我的方程式被重写为¬(w ∧ x ∧ ¬y ∧ z) ∧ ¬(w ∧ ¬x ∧ y ∧ z) ∧ ¬(¬w ∧ x ∧ ¬y ∧ ¬z) ∧ ¬(¬w ∧ ¬x ∧ ¬y ∧ z)
  3. 现在,我已针对AND和NOT门重新编写了布尔方程,然后将符号转换回英文等价物,这样我就不会偏头痛地阅读它:NOT(w AND x AND NOT(y) AND z) AND NOT(w AND NOT(x) AND y AND z) AND NOT(NOT(w) AND x AND NOT(y) AND NOT(z)) AND NOT(NOT(w) AND NOT(x) AND NOT(y) AND z)
  4. 现在,使用我在第一篇文章中提到的算术规则,将算术等价写成:

(1-(w*x*(1-y)*z))*(1-(w*(1-x)*y*z))*(1-((1-w)*x*(1-y)*(1-z)))*(1-((1-w)*(1-x)*(1-y)*z))  5.接下来,我将其粘贴回WolframAlpha,然后等待...

出来的东西有点……出乎意料:

enter image description here

我知道这将需要一些时间来简化...

幸运的是,WolframAlpha可以选择将某些答案导出为纯文本...我利用了这一点,然后将其复制并粘贴到了文本编辑器中...

x^4y^4z^4w^4-2x^3y^4z^4w^4+x^2y^4z^4w^4-3x^4y^3z^4w^4+6x^3y^3z^4w^4
-3x^2y^3z^4w^4+3x^4y^2z^4w^4-6x^3y^2z^4w^4+3x^2y^2z^4w^4-x^4yz^4w^4
+2x^3yz^4w^4-x^2yz^4w^4-x^4y^4z^3w^4+2x^3y^4z^3w^4-x^2y^4z^3w^4
+3x^4y^3z^3w^4-6x^3y^3z^3w^4+3x^2y^3z^3w^4-3x^4y^2z^3w^4+6x^3y^2z^3w^4
-3x^2y^2z^3w^4+x^4yz^3w^4-2x^3yz^3w^4+x^2yz^3w^4-2x^4y^4z^4w^3+4x^3y^4z^4w^3
-2x^2y^4z^4w^3+6x^4y^3z^4w^3-12x^3y^3z^4w^3+6x^2y^3z^4w^3-6x^4y^2z^4w^3
+12x^3y^2z^4w^3-6x^2y^2z^4w^3+2x^4yz^4w^3-4x^3yz^4w^3+2x^2yz^4w^3+2x^4y^4z^3w^3
-4x^3y^4z^3w^3+2x^2y^4z^3w^3-x^3z^3w^3-6x^4y^3z^3w^3+16x^3y^3z^3w^3
-12x^2y^3z^3w^3+2xy^3z^3w^3+x^2z^3w^3+6x^4y^2z^3w^3-21x^3y^2z^3w^3
+19x^2y^2z^3w^3-4xy^2z^3w^3-2x^4yz^3w^3+10x^3yz^3w^3-10x^2yz^3w^3+2xyz^3w^3
+x^3z^2w^3-3x^3y^3z^2w^3+4x^2y^3z^2w^3-xy^3z^2w^3-x^2z^2w^3+7x^3y^2z^2w^3
-9x^2y^2z^2w^3+2xy^2z^2w^3-5x^3yz^2w^3+6x^2yz^2w^3-xyz^2w^3+x^4y^4z^4w^2
-2x^3y^4z^4w^2+x^2y^4z^4w^2-3x^4y^3z^4w^2+6x^3y^3z^4w^2-3x^2y^3z^4w^2
+3x^4y^2z^4w^2-6x^3y^2z^4w^2+3x^2y^2z^4w^2-x^4yz^4w^2+2x^3yz^4w^2-x^2yz^4w^2
-x^4y^4z^3w^2+2x^3y^4z^3w^2-x^2y^4z^3w^2+2x^3z^3w^2+3x^4y^3z^3w^2
-12x^3y^3z^3w^2+12x^2y^3z^3w^2-3xy^3z^3w^2-2x^2z^3w^2-3x^4y^2z^3w^2
+20x^3y^2z^3w^2-23x^2y^2z^3w^2+6xy^2z^3w^2+x^4yz^3w^2-12x^3yz^3w^2
+14x^2yz^3w^2-3xyz^3w^2-2x^3z^2w^2+5x^3y^3z^2w^2-7x^2y^3z^2w^2+2xy^3z^2w^2
+5x^2z^2w^2-12x^3y^2z^2w^2+22x^2y^2z^2w^2-10xy^2z^2w^2+y^2z^2w^2-2xz^2w^2
+9x^3yz^2w^2-20x^2yz^2w^2+10xyz^2w^2-yz^2w^2-2x^2zw^2-3x^2y^2zw^2+2xy^2zw^2
+xzw^2+5x^2yzw^2-3xyzw^2-x^3z^3w+2x^3y^3z^3w-3x^2y^3z^3w+xy^3z^3w+x^2z^3w
-5x^3y^2z^3w+7x^2y^2z^3w-2xy^2z^3w+4x^3yz^3w-5x^2yz^3w+xyz^3w+x^3z^2w
-2x^3y^3z^2w+3x^2y^3z^2w-xy^3z^2w-5x^2z^2w+5x^3y^2z^2w-13x^2y^2z^2w
+8xy^2z^2w-y^2z^2w+3xz^2w-4x^3yz^2w+15x^2yz^2w-10xyz^2w+yz^2w+xw-xyw
+3x^2zw+4x^2y^2zw-3xy^2zw-5xzw-7x^2yzw+9xyzw-2yzw+zw+x^2z^2+x^2y^2z^2
-xy^2z^2-xz^2-2x^2yz^2+2xyz^2-x+xy-x^2z-x^2y^2z+xy^2z+3xz+2x^2yz-4xyz+yz-z+1

即时简化此操作会很痛苦……然后我想到有一种方法可以大大降低这一点,尤其是考虑到我当前正在处理四次多项式。

  1. 因为wxyz本质上是脉冲,其值为01,{{ 1}}或w^4x^3等依次归结为y^2wxy;仅仅是因为z的{​​{1}}和1^n = 1;所以简单地说...

enter image description here

稍后进行了两次全局替换,这将我的方程式简化为:

0^n = 0
  1. 最后,在将术语重新写回字母顺序后,我将等式切成小块,可以输入到WolframAlpha中,以获得简化的片段,这些片段基本上重新粘合在一起……最终,我的算术等价于n>0产生了xyzw-2xyzw+xyzw-3xyzw+6xyzw-3xyzw+3xyzw-6xyzw+3xyzw-xyzw+2xyzw-xyzw-xyzw+2xyzw -xyzw+3xyzw-6xyzw+3xyzw-3xyzw+6xyzw-3xyzw+xyzw-2xyzw+xyzw-2xyzw+4xyzw-2xyzw +6xyzw-12xyzw+6xyzw-6xyzw+12xyzw-6xyzw+2xyzw-4xyzw+2xyzw+2xyzw-4xyzw+2xyzw-xzw -6xyzw+16xyzw-12xyzw+2xyzw+xzw+6xyzw-21xyzw+19xyzw-4xyzw-2xyzw+10xyzw-10xyzw +2xyzw+xzw-3xyzw+4xyzw-xyzw-xzw+7xyzw-9xyzw+2xyzw-5xyzw+6xyzw-xyzw+xyzw-2xyzw +xyzw-3xyzw+6xyzw-3xyzw+3xyzw-6xyzw+3xyzw-xyzw+2xyzw-xyzw-xyzw+2xyzw-xyzw+2xzw +3xyzw-12xyzw+12xyzw-3xyzw-2xzw-3xyzw+20xyzw-23xyzw+6xyzw+xyzw-12xyzw+14xyzw -3xyzw-2xzw+5xyzw-7xyzw+2xyzw+5xzw-12xyzw+22xyzw-10xyzw+yzw-2xzw+9xyzw-20xyzw +10xyzw-yzw-2xzw-3xyzw+2xyzw+xzw+5xyzw-3xyzw-xzw+2xyzw-3xyzw+xyzw+xzw-5xyzw +7xyzw-2xyzw+4xyzw-5xyzw+xyzw+xzw-2xyzw+3xyzw-xyzw-5xzw+5xyzw-13xyzw+8xyzw -yzw+3xzw-4xyzw+15xyzw-10xyzw+yzw+xw-xyw+3xzw+4xyzw-3xyzw-5xzw-7xyzw+9xyzw -2yzw+zw+xz+xyz-xyz-xz-2xyz+2xyz-x+xy-xz-xyz+xyz+3xz+2xyz-4xyz+yz-z+1 ;当我针对段A的原始真值表对其进行测试时,针对从(w AND NOT(x) AND NOT(y)) OR (w AND NOT(z)) OR (NOT(w) AND x AND z) OR (NOT(w) AND y) OR (x AND y) OR (NOT(x) AND NOT(z))4wxyz-wxy-3wxz+wx-2wyz+wz-2xyz+xy+2xz-x+yz-z+1的十六种不同可能性插入0或1的值,得出了我确定的确切结果... < / li>

现在我只需要对其他六个部分重复此过程... [叹气]

我希望这对其他考虑数学简化布尔方程的人有所帮助...