あなたのピラミッド
構築してほしいピラミッドは、すべてキューブで構成されています。これには24層があり、上からN 番目の層には、N x Nの正方形に配置されたN 2個の立方体が含まれています。ピラミッドは次のようになります。
ピラミッドを構築するには、キューブの供給が必要になります。次のような70 x 70の正方形に配置された4900個のキューブが与えられます。
(さて、私は正方形の絵は全く不要であることを認めます。)
1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2なので、ピラミッドを構築するのに正確な数のキューブがあります。あなたがしなければならないのは、各キューブがどこに行くべきかを教えてくれます。
あなたのタスク
正方形のキューブとピラミッドのキューブの間の任意の全単射を選択する必要があります。(答えは、使用している4900!異なる全単射のどれかと言ったらいいと思います。)
次に、以下を行う関数またはプログラムを作成します。
- 70×70の正方形内の立方体の位置を(座標のペアとして
(X,Y)
)指定すると、 - ピラミッド内の位置を出力します(座標のトリプルとして
(A,B,C)
)。
入力および出力座標はすべて、0インデックスまたは1インデックスのいずれかです。インデックスが1であると仮定すると、入力(X,Y)
は1〜70の整数のペアになります。出力(A,B,C)
は整数のトリプルになります。A
は、上から数え(B,C)
たレイヤー(1〜24)であり、そのレイヤー内のそのキューブの座標(1〜24 )でなければなりませんA
。
例えば:
- ピラミッドの一番上の立方体には座標があり
(1,1,1)
ます。 - ピラミッドの基部の四隅には、座標を有する
(24,1,1)
、(24,1,24)
、(24,24,1)
、および(24,24,24)
。 - 四角の角をピラミッドの角に配置する
(70,1)
ことにした場合、入力時に出力が得られます(24,24,1)
。
有効な座標のみが与えられると仮定することができます (X,Y)
入力として。正確性は、次のルールによって完全に決定されます。2つの異なる有効な入力は、常に2つの異なる有効なスループットを提供する必要があります。
これはコードゴルフです:最短のコードが勝ちます。