您将得到一个整数M和另一个正整数n的方阵,严格小于M的大小。您的任务是生成大小为M的所有平方子矩阵 n。
出于此挑战的目的,正方形子矩阵是M中包含的一组相邻行和列。
输入/输出格式
您可以自由选择任何其他合理的格式,这些只是一些示例。
输入值
- 本机矩阵类型的矩阵(如果您的语言有一种)
- 2D数组(1D数组的数组,每个数组对应于一行/一列)
- 一维数组(因为矩阵始终为正方形)
- 字符串(您选择了空格,但请勿以任何方式滥用此字符串),等等。
输出量
- 矩阵矩阵。
- 4D数组,其中每个元素(3D列表)代表行/列上的子矩阵。
- 3D数组,其中每个元素(2D列表)代表一个子矩阵。
- 所得子矩阵的字符串表示形式,等等。
眼镜
- 您可以选择采取大小的中号输入了。保证至少为2。
- 输出的方向是任意的:您可以选择将子矩阵输出为列列表或行列表,但是选择必须一致。
- 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下,这些漏洞是禁止的。
- 这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。
例
给定n = 3和M:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
可能的3x3子矩阵为:
+ ------- + + -------- + 1 2 3 4 1 2 3 4 | 1 2 3 | 4 1 | 2 3 4 | + -------- + + -------- + | 5 6 7 | 8 5 | 6 7 8 | | 5 6 7 | 8 5 | 6 7 8 | | 9 10 11 | 12 9 | 10 11 12 | | 9 10 11 | 12 9 | 10 11 12 | + ------- + + -------- + | 13 14 15 | 16 13 | 14 15 16 | 13 14 15 16 13 14 15 16 + -------- + + -------- +
因此结果将是:
[[[1, 2, 3], [5, 6, 7], [9, 10, 11]], [[2, 3, 4], [6, 7, 8], [10, 11, 12]], [[5, 6, 7], [9, 10, 11], [13, 14, 15]], [[6, 7, 8], [10, 11, 12], [14, 15, 16]]]
如上所述,输出为:
[[[1, 5, 9], [2, 6, 10], [3, 7, 11]], [[2, 6, 10], [3, 7, 11], [4, 8, 12]], [[5, 9, 13], [6, 10, 14], [7, 11, 15]], [[6, 10, 14], [7, 11, 15], [8, 12, 16]]]
如果您选择将子矩阵返回为行列表,则也是可以接受的。
测试用例
输入M,n:
[[1,2,3],[5,6,7],[9,10,11]], 1
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]], 3
[[100,-3,4,6],[12,11,14,8],[0,0,9,3],[34,289,-18,3]], 2
[[100,-3,4,6],[12,11,14,8],[9,10,11,12],[13,14,15,16]], 3
以及相应的输出(以行列表形式给出的子矩阵):
[[[1]],[[2]],[[3]],[[5]],[[6]],[[7]],[[9]],[[10]],[[11]]]
[[[1,2,3],[5,6,7],[9,10,11]],[[2,3,4],[6,7,8],[10,11,12]],[[5,6,7],[9,10,11],[13,14,15]],[[6,7,8],[10,11,12],[14,15,16]]]
[[[100,-3],[12,11]],[[-3,4],[11,14]],[[4,6],[14,8]],[[12,11],[0,0]],[[11,14],[0,9]],[[14,8],[9,3]],[[0,0],[34,289]],[[0,9],[289,-18]],[[9,3],[-18,3]]]
[[[100,-3,4],[12,11,14],[9,10,11]],[[-3,4,6],[11,14,8],[10,11,12]],[[12,11,14],[9,10,11],[13,14,15]],[[11,14,8],[10,11,12],[14,15,16]]]
或者,作为列列表:
[[[1]],[[2]],[[3]],[[5]],[[6]],[[7]],[[9]],[[10]],[[11]]]
[[[1,5,9],[2,6,10],[3,7,11]],[[2,6,10],[3,7,11],[4,8,12]],[[5,9,13],[6,10,14],[7,11,15]],[[6,10,14],[7,11,15],[8,12,16]]]
[[[100,12],[-3,11]],[[-3,11],[4,14]],[[4,14],[6,8]],[[12,0],[11,0]],[[11,0],[14,9]],[[14,9],[8,3]],[[0,34],[0,289]],[[0,289],[9,-18]],[[9,-18],[3,3]]]
[[[100,12,9],[-3,11,10],[4,14,11]],[[-3,11,10],[4,14,11],[6,8,12]],[[12,9,13],[11,10,14],[14,11,15]],[[11,10,14],[14,11,15],[8,12,16]]]]