有人可以为我分解一下吗?为什么不能用两次乘法来完成?

复数的乘法

如果将计算所需的乘法次数视为其难度的衡量标准,并且这些计算是使用复数执行的,那么很自然会问需要多少实乘法
评估复杂产品的实部和虚部。自然的
形成复杂产品的方法需要四次实数乘法。
然而,它可以用三个乘法而不是两个乘法来完成。

(a+bi)(c+di) = (ac-bd) + (ad+bc)i

a(c+d) - d(a+b) = ac - bd
 (1)      (2)

a(c+d) + c(b-a) = ad + bc
          (3)

定理 - 计算两个复数的乘积需要三次实数乘法,即使不计算与实常数的乘法。

证明草图 由于复数乘法的实数部分和复数部分都不能在一次实数乘法中确定,如果此计算可以在两次乘法中完成,则将完成,对于 Ci、Wi、Xi、Yi 的某些选择和 Zi 以下列方式。
ac - bd = C₁(W₁a+X₁b+Y₁c+Z₁d)
            (W₂a+X₂b+Y₂c+Z₂d)
        + C₂(W₃a+X₃b+Y₃c+Z₃d)
            (W₄a+X₄b+Y₄c+Z₄d)
ad + bc = C₃(W₁a+X₁b+Y₁c+Z₁d)
            (W₂a+X₂b+Y₂c+Z₂d)
        + C₄(W₃a+X₃b+Y₃c+Z₃d)
            (W₄a+X₄b+Y₄c+Z₄d)

这导致了 20 个未知数 Ci、Wi、Xi、Yi 和 Zi 中的 20 个非线性方程,其中 (i = 1,2,3,4),它们没有实数解,因此无法执行复杂的两个实数乘法的乘法

来源:

门罗,伊恩。 “40-44。” http://dl.acm.org/ 。过程第三届年度 ACM 计算理论研讨会论文集,俄亥俄州,Shaker Heights。埃德。 Michael A. Harrison、Ranan B. Banerji 和 Jeffrey D. Ullman。 Acm,1971 年 5 月 3 日。网络。 2016 年 11 月 26 日。http://dl.acm.org/citation.cfm?doid=800157.805036

最佳答案

所以,这里被证明的定理基本上是,“即使你可以做任意多的加法、减法和乘法运算,你也不能在不做任何事情的情况下计算 ac-bd 和 ad+bc两个非预定量的三个乘法。”

(注意:此后,我将“两个非预定量的乘法”缩写为“MNPQ(s)”。)

证明首先指出你当然不能只用一个 MNPQ 来计算 { ac−bd, ad+bc } 中的任何一个。因此,您可以仅用两个 MNPQ 计算它们的唯一方法是,如果您可以以某种方式“共享”这些 MNPQ,在 { ac-bd, ad+bc } 中使用它们的两个结果。

顺便说一下,这个证明依赖于一个未说明的前提,即如果你所得到的只是加法、减法和乘以预先确定的常数,那么最终你所做的任何事情都只是输入的线性组合。 (你明白为什么吗?)所以这两个 MNPQ 都是 { a, b, c, d } 的线性组合的乘法,你“分享”它们结果的方式是 { ac−bd, ad+bc是那些 MNPQ 的结果的两种不同的线性组合。 (一个完整的证明需要更彻底的论证,关于一个 MNPQ 的结果可能是另一个论证的可能性,以及最终线性组合不仅包含 MNPQ 的结果而且还包含 { a, b, c, d }; 但这只是标记为“证明草图”,所以我想它不必担心这些事情。)

如果你接受这个前提,那么我们可以把这两个 MNPQ 写成 (W₁a+X₁b+Y₁c+Z₁d)·(W₂a+X₂b+Y₂c+Z₂d) 和 (W₃a+X₃b+Y₃c+Z₃d)·(W₄b+X₄a+X₄c +Z₄d),以及它们的两个线性组合(ac−bd 和 ad+bc)作为 C₁(MNPQ)₁+C₂(MNPQ)₂ 和 C₃(MNPQ)₃+C₄(MNPQ)₄。如果你然后将所有东西相乘,你就会得到一个方程组来求解——未知数是神奇的常数 W₁、X₂、C₃ 等——但事实证明,这个方程组实际上没有解.因此,没有一组神奇的常数可以启用这种方法,因此这种方法是不可能的,因此您需要执行至少三个 MNPQ 才能计算 ac-bd 和 ad+bc。

关于algorithm - 少于 3 次乘法的两个复数的乘积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40857265/

10-13 00:25