[讨论]分治法是否能够实现任意不同位数的大整数乘法

「已注销」 2006-10-25 12:20:00
在MFC区提出了,没什么反应,借贵地人气,希望有所收获
...全文
369 6 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
可以的话那大家就来谈谈看到底怎么做?
我的想法是提取这两个大整数的工因子,然后把两个数以公因子的某个倍数来划分,这样虽然两个大整数得到分别数量不同的划分,但是每个划分的位数是一样的,然后再通过常规的分治来实现.
不知道可不可行,或者还有没有其它的方法,希望各位大牛不惕赐言.

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧