python - 如何在一系列数字上比较各种乘法算法
问题描述
在 MITOpencourseware(6.006 第 12 课)中进行 MIT 讲座时,我遇到了 4 种乘法算法(将两个 n 位数字相乘)-
- O(n^2) 复杂度的普通朴素方法
- Karatsuba 算法 - O(n^1.584)
- Toom-Cook(Toom3) - O(n^1.465)
- Schonhage-Strassen - O(nlog(n)log(log(n)))
现在要研究的是,在哪个阈值点(即 n 的值),一种方法作为更好的算法超越了另一种方法。有人提到以上所有内容都在 gmpy 包中。
为了尝试这一点,我参考了以下链接中的 gmpy2 包文档 - https://gmpy2.readthedocs.io/en/latest/intro.html
然而,在浏览本文档的部分内容时,gmpy2 似乎更多的是处理大量数字。特别是,我没有找到实现上述 4 种算法的单独函数。那么 gmpy2 的任何部分是否实现了这些算法,所以我可以根据 n(位数)绘制这些算法的运行时间?
解决方案
推荐阅读
- azure - 有没有办法使用 JWT 和 Azure AD 令牌授权 Net Core 3.0 API
- javascript - 使用 javascript 和 dexie 建模问题 N:M 关系
- sqlite - Python sqlite3。从 pandas read_csv 写入表会导致错误:输入不完整
- python-3.x - Raspberry Pi、linux systemd 和 .system 文件
- homebrew - 如何在 zsh 中正确激活 pipenv shell?
- swift - 没有场景委托的 SwiftUI 2 弹出到根视图
- mongodb - MongoDB 嵌入和引用
- c# - 对撞机未在预制件上注册
- python - 为什么我无法在 PageObjects 目录中导入 page.py 模块?
- ruby-on-rails - 运行“rails server”时,为什么我的本地主机拒绝在 Chrome 和 Firefox 上连接?