大小为MxN的矩阵中大小为AxB的子矩阵的数量

时间:2016-06-04 19:13:36

标签: algorithm math matrix

我正在关注https://taninamdar.files.wordpress.com/2013/11/submatrices3.pdf以查找矩阵的子矩阵的总数。但是如何找到矩阵中存在多少给定大小的子矩阵。 0 <= A <= M且0 <= B <= N 其中AxB(子矩阵大小)和MxN(矩阵大小)。

1 个答案:

答案 0 :(得分:4)

我没有通过pdf(数学和我不是朋友),但是简单的逻辑就足够了。简单地说,尝试减少维度:您可以在长度为m的向量中放置多少长度为n的向量?

答案:n-m+1。为了说服你,请完成案件。说n = 5m = 5。你有一个可能性。使用n = 5m = 4,您有两个(第二个向量从索引0或索引1开始)。使用n = 5m = 3,您有三个(向量可以从索引0,1或2开始)。对于n = 5m = 1,你有5个,似乎是逻辑。

因此,为了将其应用于矩阵,您必须添加维度。你是怎样做的 ?乘法。有多少长度a的向量可以放在长度为n的向量中? n-a+1。有多少长度b的向量可以放在长度为m的向量中? m-b+1

那么,您可以在长度为A*B的矩阵中放置多少个大小为N*M的矩阵? (N-A+1)*(M-B+1)

所以,我没有处理其中一个维度为0的情况。这取决于你如何考虑这种情况。