社区
C++ 语言
帖子详情
[讨论]分治法是否能够实现任意不同位数的大整数乘法
「已注销」
2006-10-25 12:20:00
在MFC区提出了,没什么反应,借贵地人气,希望有所收获
...全文
369
6
打赏
收藏
[讨论]分治法是否能够实现任意不同位数的大整数乘法
在MFC区提出了,没什么反应,借贵地人气,希望有所收获
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kusk
2006-10-26
打赏
举报
回复
不需要考虑提公因子,因为它本身的运算量也并不能忽视,尤其是在大整数高精度计算的时候。
楼上的方法是比较经典的。
taodm
2006-10-26
打赏
举报
回复
“提取这两个大整数的工因子”
哇,这个任务基本比大数乘法更难了。
可以这么做
a * b = ((a1 = a / 10的100次方) + (a2 = a % 10的100次方)) * ((b1 = b / 10的100次方) + (b2 = b % 10的100次方))
= a1 * b1 + a1 * b2 + a2 * b1 + a2 * b2
你就可以实现分治了。
OOPhaisky
2006-10-26
打赏
举报
回复
分治法,应该可以。
Could
2006-10-26
打赏
举报
回复
找书看吧,
一般的算法书上都有。
计算大数乘法最快的是采用fft,
可以在O(nlogn)的时间内完成两个n位数的乘法。
pcboyxhy
2006-10-25
打赏
举报
回复
当然可以
而且是个不错的想法
「已注销」
2006-10-25
打赏
举报
回复
可以的话那大家就来谈谈看到底怎么做?
我的想法是提取这两个大整数的工因子,然后把两个数以公因子的某个倍数来划分,这样虽然两个大整数得到分别数量不同的划分,但是每个划分的位数是一样的,然后再通过常规的分治来实现.
不知道可不可行,或者还有没有其它的方法,希望各位大牛不惕赐言.
采用
分治法
计算两个大整数的乘积
实现
算法: 给定两个整数u和v,它们分别有m和n
位数
字,且m≤n。...用
分治法
在O(nlog3)时间内计算uv的值。当m时,此法效率不高。设计算法在O(nlog2/3)时间计算uv的值 开发平台: .net 2005 C++
分治法
-
大整数乘法
可以将一个大的整数乘法分而治之,将大问题变成小问题,变成简单的小数乘法再进行合并,从而解决上述问题。 当分解到只有一
位数
时,乘法就很简单了。 算法设计: 分解: 首先将2个大整数a(n位)、b(m位)分解...
算法设计与分析
课程内容包括:算法设计和分析的基本概念、算法的渐进分析、递归方程的求解、各自算法设计策略(如蛮力法/穷举法、状态空间搜索、回溯和分支限界、分治递归、贪心法、动态规划等),对每种算法设计方法都选取了典型...
分治算法--
大整数乘法
大整数乘法
:就是乘法的两个乘数比较大,最后结果超过了整型甚至长整型的最大范围,此时如果需要得到精确结果,就不能常规的使用乘号直接计算了。没错,就需要采用分治的思想,将乘数“分割”,将大整数计算转换为小...
【分治算法之
大整数乘法
】---C++
实现
大整数乘法
:用分治算法编程
实现
两个n位十进制大整数的乘法运算。 一种较为流行的思路(即分治) 分析 <大整数的乘法> 在计算机中,长整形(long int)变量的范围不能超过10
位数
。 即便用双精度(double)...
C++ 语言
64,282
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章