大整数乘法的5种方法

本文介绍了几种处理大数乘法的有效算法,包括基本的累加型乘法、分治思想的Karatsuba乘法及Toom-Cook乘法、利用快速傅里叶变换的Schönhage–Strassen算法等。此外还提到了基于中国剩余定理的方法以及Furer’s algorithm。

 

 模拟小学乘法:最简单的乘法竖式手算的累加型;

分治乘法:最简单的是Karatsuba乘法,一般化以后有Toom-Cook乘法;

快速傅里叶变换FFT:(为了避免精度问题,可以改用快速数论变换FNTT),时间复杂度O(N lgN lglgN)。具体可参照Schönhage–Strassen algorithm

中国剩余定理:把每个数分解到一些互素的模上,然后每个同余方程对应乘起来就行;

Furer’s algorithm:在渐进意义上FNTT还快的算法。不过好像不太实用,本文就不作介绍了。大家可以参考维基百科Fürer’s algorithm

 

1.大数模板

2.K法-链接1 K法-链接2

http://blog.csdn.net/sunnyyoona/article/details/43234889

http://blog.csdn.net/u010983881/article/details/77503519

https://mooc.guokr.com/platform/Coursera/

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值