【发布时间】:2016-02-17 20:35:24
【问题描述】:
设计并分析一种算法,将 2 个数字 A 和 B 相乘,每个 n 位长,但使用 Strassen 算法将它们分成 3 个大小相等的部分。您可以获得的最佳运行时间是多少?
我有两个长度为 n 的数字,并将它们分成三个相等的部分。例如,123 分为 1、2 和 3。根据我的理解,我必须使用矩阵。但是,Strassen 的算法对我来说没有任何意义。
我观看了视频并阅读了讲座,但仍然不知道如何进行。任何帮助将不胜感激,谢谢!
【问题讨论】:
-
您尝试使用哪些来源?您究竟需要帮助理解什么?
-
我在 YouTube 上查看了有关 stassens 算法及其解释的视频,但我不确定我是否正确地处理了这个问题。我有两个长度为 N 的数字,我需要将它们分成 3 个相等的部分。这是否意味着我将制作三个不同的矩阵。这个数字最终将如何等于结果以及(如果我认为正确的话)这三个部分是如何分开的
-
Schonhage-Strassen 整数乘法算法不会将输入分成块。也许你被要求实现 Tom-Cook? en.m.wikipedia.org/wiki/Toom–Cook_multiplication
-
这里写着 Strassen:i.imgur.com/20yLNJi.png.
-
我想我现在看到了。您应该使用 Strassen 的矩阵乘法算法背后的思想来实现整数乘法:找出一种使用少于 9 个 n/3 位数字的乘积来计算乘积的方法。与矩阵无关。
标签: algorithm big-o multiplication strassen