数字的算法--大数乘法2

准备一、数学家高斯曾经发现虽然计算两个复数的乘积看似包含4次乘法:
( a + b i ) ( c + d i ) = a c − b d + ( a d + b c ) i (a+bi)(c+di)=ac-bd+(ad+bc)i (a+bi)(c+di)=acbd+(ad+bc)i
但是其实三次实数乘法就可已完成,因为我们需要的就是系数 a c , b d , ( a d + b c ) ac,bd,(ad+bc) ac,bd,(ad+bc)
( a d + b c ) = ( a + b ) ( c + d ) − a c − b d (ad+bc)=(a+b)(c+d)-ac-bd (ad+bc)=(a+b)(c+d)acbd
虽然这这看起来似乎没有什么大不了的,但是大数乘法的比较快的算法的核心其实就在这个让乘法次数减少的式子里。

准备二、

算法导论里有对主定理的推导,用于判断一种算法的时间复杂度。但是公式比较复杂,《Algorithms》(中文翻译成算法概论)这本书里的分治算法这一章有对分治算法的主定理作了一个更加简单的总结:

主定理:如果对于常数a>0、b>1以及d>=0,有 T ( n ) = a T ( n / b ) + O ( n d ) T(n)=aT(n/b)+O(n^d) T(n)=aT(n/b)+O(nd)成立,则

在这里插入图片描述
对于证明,我简单的口述一下:我们将 T ( n ) = a T ( n / b ) + O ( n d ) T(n)=aT(n/b)+O(n^d) T(n)=aT(n/b)+O(n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值