递归分治-大整数乘法

本文探讨了使用递归分治方法来提高大整数乘法的效率。通过将数字拆分为两段,计算四个部分的乘积,然后结合加法和移位操作,可以将传统方法的O(n^2)复杂度降低到O(n log n)。作者还介绍了一种优化算法,通过公式变形减少乘法次数,进一步提升效率。
摘要由CSDN通过智能技术生成

最近在学算法,想着不能只是学,要深刻领悟,需要记录,需要写代码,需要分析……所以就诞生了这篇博客。

问题描述:

设X和Y都是n位整数,计算它们的乘积XY。可以使用传统的数学计算方法,但是这样做计算步骤太多,效率较低。如果将每个一位数的乘法或加法看做一步运算,则这种方法需要进行O(n^2)步运算才能求出乘积XY。

方法一

基本计算步骤如下,如:56*78
第一步:6*8;
第二步:5*8;
第三步:6*7;
第四步:5*7;
第五步:以上4步的和加起来,得到最后的结果。
将以上的例子进行抽象,即可以这样表示:
将n位十进制(还包括其他进制,如二进制、八进制、十六进制等)整数X和Y都分为2段,每段的长为n/2位。即:
X=A10n2+B
Y=C10n2+D
这样XY的乘积就是
XY=(A10n2+B)C<

  • 12
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值