矩阵线圈(蛇形)

Matrix coil (serpentine)

有!

我在 java 中遇到问题,无法生成这样的矩阵:

当 n= 4

{{1   4   5  16},
 {2   3   6  15},
 {9   8   7  14},
 {10  11 12  13}};  

矩阵应包含从 1 到 n*n 的数字。

我不需要任何代码,我只是想看看当 n=5 和 n=6 时矩阵的样子。 我在互联网上搜索过,只找到了螺旋矩阵,但没有找到这个。 谢谢!

我觉得这个矩阵的产生式规则是从左上角开始,然后从逆时针开始,尽可能小的循环填充,遇到边界就在顺时针和逆时针之间切换.

因此,对于 n = 5,它看起来像这样:

{{ 1  4  5 16 17},
 { 2  3  6 15 18},
 { 9  8  7 14 19},
 {10 11 12 13 20},
 {25 24 23 22 21}};

对于 n = 6,它看起来像这样:

{{ 1  4  5 16 17 36},
 { 2  3  6 15 18 35},
 { 9  8  7 14 19 34},
 {10 11 12 13 20 33},
 {25 24 23 22 21 32},
 {26 27 28 29 30 31}};

有一些有趣的不变量。 在第一行中,每隔一个条目是一个偶数的平方,从 4 (2) 开始。 在第一列中,每隔一个条目是一个奇数的平方,从 1 (1) 开始。

对角线的产生是F(n) := n == 1 ? 1 : F(n-1) + 2(n-1)

好东西,用它编程很有趣。