N次元ハイパーキューブの各タイプの要素(頂点、エッジ、面など)の数を出力する関数またはプログラムを作成します。
例として、3次元キューブには1つのセル(つまり1つの3次元キューブ)、6つの面(つまり6つの2次元キューブ)、12のエッジ(つまり12の2次元キューブ)と8つの頂点(つまり8つの0次元キューブキューブ)。
Hypercube要素の詳細については、こちらをご覧ください。
あなたにも見てとることができ、次のOEISシーケンスを。
入力
コードは(STDINまたは関数パラメーターなどを介して)入力として、0以上の整数(ハイパーキューブの次元)を受け取ります。
コードは、メモリと時間の問題を無視して、理論的には0以上の入力に対して機能する必要があります(つまり、入力が大きい場合、速度と潜在的なスタックオーバーフローは答えの問題ではありません)。テストケースとして与えられた入力は12を超えません。
出力
「最高次元」要素から始めて、ハイパーキューブのすべての要素のリストを出力します。たとえば、キューブ(入力= 3)の場合、リスト[1,6,12,8]
(1セル、6面、12エッジ、8頂点)を出力します。
出力のリストの形式は、リストのように見える限り比較的自由です。
結果をSTDOUTに出力するか、関数から返すことができます。
テストケース
Input = 0
Output = [1]
Input = 1
Output = [1,2]
Input = 3
Output = [1,6,12,8]
Input = 10
Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024]
Input = 12
Output = [1, 24, 264, 1760, 7920, 25344, 59136, 101376, 126720, 112640, 67584, 24576, 4096]
得点
これはcode-golfであるため、バイト単位の最短回答が優先されます。