0
我有2D二进制数组。尺寸:M
X N
例如13
X 2
阵列可以是这样的: 1010101010110 1010011111000
不同的子阵列的数量
是否可以说我们有多少不同的2D子阵列可以做什么呢? M
x N
数组也是子数组。
无字different
我认为子数组的数量是:(n * (n + 1) * m * (m + 1))/4
是这样吗?
我有2D二进制数组。尺寸:M
X N
例如13
X 2
阵列可以是这样的: 1010101010110 1010011111000
不同的子阵列的数量
是否可以说我们有多少不同的2D子阵列可以做什么呢? M
x N
数组也是子数组。
无字different
我认为子数组的数量是:(n * (n + 1) * m * (m + 1))/4
是这样吗?
在测试
当然,对于不同尺寸的子矩阵的数量,它只是m x n
因为行的每个长,有柱的长度,你可以切片。
但更有趣的问题,如何将二维数组的许多排列可以生成,下面的代码显示了这一点:
permutations = []
for i in 1...m {
for j in 1...n {
// now we make all possible i x j matrices
for k in 0..<floor(m/i) + 1 {
for l in 0..<floor(n/j) + 1 {
permutations.append(input[k:k+i,l:l+j])
}
}
}
}
所以它是这样的:
m * n * (2m+1 + floor(m/2) + floor(m/3) + ... + floor(m/(m-1))) * (2n+1 + floor(n/2) + floor(n/3) + ... + floor(n/(n-1)))
定义选择子阵列的操作类型和“不同”的含义 – Amit
不同的尺寸。值不相关。 – John