• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 大数乘除怎么实现?

大数乘除怎么实现?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了大数乘除,大数乘除法,大数加减乘除,大数 高精度 加减乘除,数据结构大数加减乘除等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:大数乘除怎么实现?
描述:

大数加减想明白了,但乘除不是很懂


解决方案1:

乘法基本就是他们说的那样
除法看这里。。
http://picks.logdown.com/posts/197262-polynomial-division

解决方案2:

推荐一个有意思的相乘算法:阿拉伯乘法,解决大整数相乘问题。https://github.com/qiwsir/algorithm/blob/master/big_int.md

解决方案3:

以2位数为例
(a*10+b) * (c*10+d) = (a*c)*100 + (a*d+c*b)*10 + b*d
剩下的无非就是不大数乘法、不大数加法和进位了。

解决方案4:

http://www.jjj.de/fxt/fxtbook.pdf 你可以看看这个文档,算是对各种计算最全的了,其中28章有快速计算大数乘法的算法,跟楼上的描述差不多。

解决方案5:

要实现O(NlogN)的大数乘法,使用“快速傅里叶变换”(FFT),或者变种“快速数论变换”(FNTT),两者实现和性能差不多,各有优劣和适用情景。原理呀,维基百科上就有,但看懂需要不低的数学基础。算法实现起来也相对复杂,不过核心部分也就30行C++左右。其它算法如什么KR的,都无法达到O(NlogN),但可以和FFT/FNTT混合着用从而突破位数限制。

实现大数乘法后,用牛顿迭代法将除法转换为乘法,时间复杂度同样是O(NlogN)。

[夹带私货]我曾写过一文介绍圆周率计算方法,含基于快速傅里叶变换的大数乘法、除法、开方的算法介绍,有点长就不贴来了,外链一下:

http://www.guokr.com/blog/444081/


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 大数乘除怎么实现?

相关文章

  • 2017-06-07 (python)部署网站,想确认一下这样理解SSH是否正确
  • 2017-06-07 七牛9月22日详细事故说明
  • 2017-06-07 python相对C++有什么优势?
  • 2017-06-07 python!requests!post!的时候遇到的问题
  • 2017-06-07 nginx如何配置负载均衡
  • 2017-06-07 存储在七牛的gif图片,有接口能获取到播放时长么?
  • 2017-06-07 redis添加数据不是加在原数据的后面?
  • 2017-06-07 错错错一错再错pythonscrapy爬虫错误
  • 2017-06-07 基于JSON类型返回的API接口如果做输出校验?
  • 2017-06-07 七牛使用防盗链之后视频播放不正常

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • CentOS安装go后,执行/go,提示/libexec/ld-elfso1:badELFinterpreter:
    • Mac下无法用PyCharm建立默认文件结构的Flask项目
    • MacElCapitan运行VirtualBox提示“EffectiveUIDisnotroot”
    • (golang)qiniump4转mp3失败,求助?
    • (python)pycharm中提示Unsolvedreference‘power’
    • python爬虫(python)下面两个url有什么区别
    • 大家看redis源码主要学习什么部分
    • python应届不靠谱程序员求带走!
    • "符号" target="_blank"> php正则怎么匹配非html标签的"<",">"符号
    • 利用自身flaskrestfulapi的推荐方式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有