作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
嗯,是《算法导论》的一道题,题号是4.2-6
.是这样描述的:
你能多快倍增a kn*n matrix by an n*kn matrix
, 使用 Strassen's algorithm
作为 subroutine
?
我正在考虑将两个矩阵扩展到 kn*kn matrix
,那么我可以将 Strassen 的算法应用到这个问题上。但我会得到一个Math.pow(kn, lg7) running time
.
有没有人有更好的解决方案。祝大家新年快乐。
最佳答案
思考而不是将 k*1 向量乘以 1*k 向量。这需要 k^2 次乘法,最后得到一个 k*k 矩阵。这里唯一不同的是你的向量的元素是 n*n 矩阵,所以如果你使用 Strassen 的算法将 n*n 相乘,你最终会做 O(k^2 n^(log 7)) 标量乘法矩阵。
关于algorithm - 施特拉森矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14104569/
我是一名优秀的程序员,十分优秀!