#include <stdio.h>
int main()
{
int i;
int x;
int y;
for (x = 1; x <= 5; x++)
{
for (y = 1; y <= 5; y++)
{
i = 7848 + y * (-29412 + y * (23130 + y * (-6660 + y * 630)))
+ x * (-16668 + y * (56629 + y * (-44066 + y * (12612 + y * -1186))))
+ x * x * (11910 + y * (-35522 + y * (27183 + y * (-7696 + y * 717))))
+ x * x * x * (-3420 + y * (9204 + y * (-6844 + y * (1908 + y * -176))))
+ x * x * x * x * (330 + y * (-826 + y * (597 + y * (-164 + y * 15))));
printf("%2d ", i/72);
}
printf("\n");
}
}
输出结果为:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
这段代码背后有什么数学基础?
编辑:我知道这段代码没用,也没用,也不能以其他方式使用。我只是对这段代码背后的数学基础感到好奇......答案 0 :(得分:5)
这似乎是某人试图以刻意复杂的方式做一些简单的事情。
对于每个单元格,它正在计算x
和y
中的多项式。对于所有0&lt; = i&lt; = 4且0&lt; = j&lt; = 4,每个单元的值是项aijxiyj
的和。
要计算多项式的系数aij
,您可以替换x
和y
的值以及每个单元格的所需结果。你将得到25个25个变量的线性方程组,可用基本线性代数求解。
请注意,此方法与螺旋模式的结果无关:它可用于打印任何结果,系数可能会有所不同。
答案 1 :(得分:0)
此代码的结果如下:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
看起来确实数字遵循蜗牛模式,但它不适用于更大的方形尺寸,也不适用。 (将5
更改为7
或3
会导致错误结果)
我想这只是“纯粹的运气”,或者更简单的特定混淆代码来打印这种模式,但是我没有看到它背后的数学基础。