矩阵线圈(蛇形)
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)
好东西,用它编程很有趣。
有!
我在 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)
好东西,用它编程很有趣。