首页 > 后端开发 > C++ > 如何实现大数的快速平方计算?

如何实现大数的快速平方计算?

Barbara Streisand
发布: 2024-12-21 06:04:14
原创
394 人浏览过

How Can We Achieve Fast Square Computation of Big Numbers?

大数的快速平方计算

问题:
给定一个表示为动态数组的 bignum无符号 DWORD,任务是在不丢失的情况下尽快找到 bignum 的平方

解决方案:

提供的算法通过使用分而治之的方法优化乘法来有效地计算 bignum 的平方。

优化Karatsuba乘法:

调整后和优化,对于超过 32*98 位的输入大小,Karatsuba 乘法比 O(N^2) 经典乘法更快。对于较小的数字,快速 sqr 方法仍然更有效。

用于平方实现的修改 Schönhage-Strassen 乘法:

FFT 和 NTT 变换已被探索用于加速,但它们的准确性损失和实现复杂性使它们不太适合。

NTT优化:

NTT 的密集优化带来了性能提升,NTT sqr 阈值设置为 31032 位,NTT mul 设置为 139632 位。

结论:

对于较小的数字,快速 sqr 方法被证明是最快的选择。在达到阈值之后,Karatsuba 乘法变得更加高效。然而,寻找更有效的唐叶替代品的工作仍在继续。

以上是如何实现大数的快速平方计算?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板