チャレンジ
デューラーの有名な魔方陣の配列または文字列表現を出力します。
あれは、
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
おそらく悪用される可能性があるこの正方形のいくつかのプロパティは次のとおりです。
- から
1
までの各整数を16
1回だけ含む - 各列または行の合計、および2つの対角線の合計は同じです。これは、魔方陣の定義プロパティです。合計は、正方形の魔法の定数です。
- さらに、この特定の正方形では、4つの象限のそれぞれの合計も魔法の定数に等しく、中央の4つの正方形の合計とコーナーの4つの正方形の合計も同様です。
ルール
魔方陣を生成するBultinsは許可されていません(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}
4つの文字列の配列、または4行で構成される文字列。数字は右揃えにすることができます
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
次のような、行と列の2つの異なるセパレーターを含む文字列
16,3,2,13|5,10,11,8|9,6,7,12|4,15,14,1
出力形式では、行と列を明確に区別する必要があります。たとえば、フラット配列、またはすべての数字がスペースで区切られた文字列を出力することはできません。
コードゴルフ。最短勝。
[15]
で始まり、それぞれ13、3、8、および15でXORされた各アイテムと逆に繰り返し連結することにより、正方形を生成できます。