wsc810 发表于 2016-9-22 14:43:01

逻辑运算在代数运算中的有趣规律

本帖最后由 wsc810 于 2016-9-22 14:47 编辑

有如下基本公式
$A=A\wedgeB+A\wedge\barB$
$B=A\wedgeB+\barA\wedgeB$
则有
$A*B=(A\wedgeB+A\wedge\barB)(A\wedgeB+\barA\wedgeB)$
          $=(A\wedgeB) (A\wedgeB+A\wedge\barB+\barA\wedgeB)+(A\wedge\barB)(\barA\wedgeB)$
          $= (A\wedgeB)(A\veeB)+(A\wedge\barB) (\barA\wedgeB)$

在这里注意到$ (A\wedgeB)\subset(A\veeB)$,

   $(A\wedge\barB)\wedge (\barA\wedgeB)=\emptyset$

                     
一个集合和它的子集相乘以及两个交集为零的集合相乘,设计硬件乘法器的时候可以化简运算。

还有利用$A*B=(\frac{A+B}{2})^2-(frac\{A-B}{2})^2$,考虑只用平方运算器和加法运算器(减法可以通过补码转化为加法,由于偶数可以移位,所以只考虑两个奇数相乘的情形)完成两个二进制数的相乘,上述两种方法能否提高硬件乘法的速度。

.·.·. 发表于 2017-12-9 18:22:47

平方器……讲道理的话快速平方器做起来不比乘法器简单多少
同时,如果算一个数的平方速度慢于算乘法的一半……then……
A*B=一次乘法
A*B=两次平方两次减法一次加法……
反而更慢了
页: [1]
查看完整版本: 逻辑运算在代数运算中的有趣规律