具有多个输入的算术布尔代数
Arithmetic Boolean Algebra with Multiple Inputs
我一直在使用具有四个半字节 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
其中 A
和 B
只能等于 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
是最低有效位...在这种情况下处理多个输入的规则是什么?有人可以提示我如何进行吗?
提前致谢...
我绞尽脑汁想找出一种方法来做到这一点...布尔方程中的 AND 表示非常简单,NOT 表示也很简单,但是 OR 过程让我很沮丧...
一开始我没有意识到的是,可以求解这些布尔方程,以消除对更容易算术翻译的格式的 OR 引用...
过程
- 我们取布尔方程:
(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))
- 接下来,我们将它放入 WolframAlpha.com 的引擎中......直到我测试它才意识到 WolframAlpha 能够重写逻辑方程......而且它也有能力仅针对与门而不是非门重写它们...结果,我的等式被重写为
¬(w ∧ x ∧ ¬y ∧ z) ∧ ¬(w ∧ ¬x ∧ y ∧ z) ∧ ¬(¬w ∧ x ∧ ¬y ∧ ¬z) ∧ ¬(¬w ∧ ¬x ∧ ¬y ∧ z)
- 现在我已经根据 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)
- 现在,使用我在初始 post 中提到的算术规则,写出等价的算术:
(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,然后等待...
结果有点……出乎意料:
我知道这需要一些时间来简化...
幸运的是,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
即时简化这个会很痛苦……然后我想到有一种方法可以大大减少这个,特别是考虑到我目前正在处理四次多项式。
- 因为
w
、x
、y
和 z
本质上是脉冲,其值为 0
或 1
, w^4
或 x^3
或 y^2
等等将归结为 w
、x
、y
或 z
;仅仅因为 1^n = 1
和 0^n = 0
对应 n>0
;所以简单地说...
稍后进行了几次全局替换,"reduced" 我的等式如下:
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
- 最后,在将术语重新按字母顺序重写后,我将方程式分成更小的部分,这些部分可以输入到 WolframAlpha 中以获得简化的片段,这些片段基本上重新组合在一起......最终我的算术
(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
;其中,当我针对 A 段的原始事实 table 对其进行测试时,为从 0000
到 1111
的十六种不同可能性插入值 0 或 1 产生了我确定的确切结果...
现在我只需要对其他六个部分重复这个过程...[叹息]
我希望这可以帮助任何其他考虑在数学上简化布尔方程的人...
我一直在使用具有四个半字节 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
其中 A
和 B
只能等于 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
是最低有效位...在这种情况下处理多个输入的规则是什么?有人可以提示我如何进行吗?
提前致谢...
我绞尽脑汁想找出一种方法来做到这一点...布尔方程中的 AND 表示非常简单,NOT 表示也很简单,但是 OR 过程让我很沮丧...
一开始我没有意识到的是,可以求解这些布尔方程,以消除对更容易算术翻译的格式的 OR 引用...
过程
- 我们取布尔方程:
(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))
- 接下来,我们将它放入 WolframAlpha.com 的引擎中......直到我测试它才意识到 WolframAlpha 能够重写逻辑方程......而且它也有能力仅针对与门而不是非门重写它们...结果,我的等式被重写为
¬(w ∧ x ∧ ¬y ∧ z) ∧ ¬(w ∧ ¬x ∧ y ∧ z) ∧ ¬(¬w ∧ x ∧ ¬y ∧ ¬z) ∧ ¬(¬w ∧ ¬x ∧ ¬y ∧ z)
- 现在我已经根据 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)
- 现在,使用我在初始 post 中提到的算术规则,写出等价的算术:
(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,然后等待...
结果有点……出乎意料:
我知道这需要一些时间来简化...
幸运的是,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
即时简化这个会很痛苦……然后我想到有一种方法可以大大减少这个,特别是考虑到我目前正在处理四次多项式。
- 因为
w
、x
、y
和z
本质上是脉冲,其值为0
或1
,w^4
或x^3
或y^2
等等将归结为w
、x
、y
或z
;仅仅因为1^n = 1
和0^n = 0
对应n>0
;所以简单地说...
稍后进行了几次全局替换,"reduced" 我的等式如下:
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
- 最后,在将术语重新按字母顺序重写后,我将方程式分成更小的部分,这些部分可以输入到 WolframAlpha 中以获得简化的片段,这些片段基本上重新组合在一起......最终我的算术
(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
;其中,当我针对 A 段的原始事实 table 对其进行测试时,为从0000
到1111
的十六种不同可能性插入值 0 或 1 产生了我确定的确切结果...
现在我只需要对其他六个部分重复这个过程...[叹息]
我希望这可以帮助任何其他考虑在数学上简化布尔方程的人...