挑战
输出Dürer著名的魔方的数组或字符串表示形式:
那是,
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
该广场的某些属性可能会被利用,它们是:
- 它包含从
1
到的每个整数16
一次 - 每列或每行的总和以及两个对角线的每一个的总和是相同的。这是魔方的定义属性。总和是平方的魔术常数。
- 另外,对于这个特定的正方形,四个象限中每个象限的总和也等于魔术常数,中心四个正方形的总和和角点四个正方形的总和也等于魔术常数。
规则
不允许生成魔术方块的Bultin(例如Matlab magic
或Mathematica的MagicSquare
)。可以使用任何其他内置函数。
该代码可以是程序或函数。
没有输入。
数字必须以10为底。输出格式像往常一样灵活。一些可能性是:
嵌套数组(函数输出或其字符串表示形式,带或不带分隔符,任何类型的匹配括号):
[[16, 3, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]]
2D阵列:
{16, 3, 2, 13; 5, 10, 11, 8; 9, 6, 7, 12; 4, 15, 14, 1}
四个字符串组成的数组,或由四行组成的字符串。数字可能右对齐
16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
或左对齐
16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
具有两个不同的行和列分隔符的字符串,例如
16,3,2,13|5,10,11,8|9,6,7,12|4,15,14,1
输出格式应清楚地区分行和列。例如,不允许输出平面数组或所有数字用空格分隔的字符串。
代码高尔夫。最短的胜利。
[15]
,然后将其反方向与分别与13、3、8和15进行XOR运算的结果重复串联。