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

问题描述 投票: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

其中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是最不重要的位...在这种情况下处理多个输入的规则是什么?有人能给我一个关于如何进行的推动吗?

提前致谢...

math boolean boolean-logic algebra
1个回答
-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只有盖茨和NOT门......结果,我的等式被重写为¬(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基本上都是脉冲,无论是0还是1w^4x^3y^2等都将归结为wxyz;仅仅因为1^n = 10^n = 0n>0;所以简单地说......

enter image description here

几个全球替换后来,这“减少”我的方程式如下:

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
  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段的原始真值表进行测试时,从00001111的十六种不同可能性中插入0或1的值,得出了我确定的确切结果......

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

我希望这可以帮助其他人考虑在数学上减少布尔方程......

© www.soinside.com 2019 - 2024. All rights reserved.