有!
我在java中遇到一个问题,就是生成这样的矩阵:
当n = 4时
{{1 4 5 16},
{2 3 6 15},
{9 8 7 14},
{10 11 12 13}};
Matrix shoud包含从1到n * n的数字。
我不想要任何代码,我只想看看当n = 5和n = 6时矩阵是什么样的。 我在网上搜索过,发现了螺旋矩阵,但不是这个。 谢谢!
答案 0 :(得分:1)
我认为这个矩阵的生成规则是从左上角开始,然后通过逆时针开始在尽可能小的循环中填充它,一旦满足边界,就在顺时针和逆时针之间切换。< / p>
因此,对于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)
好的东西,用它编程很有趣。