A ウォルシュ行列が持つ正方行列の特別な種類である量子内のアプリケーションは、コンピューティング(そしておそらく他の場所で、私は唯一の量子コンピューティングを気)。
ウォルシュ行列の特性
寸法は、我々は彼らを呼び出し、ここでは2つの指数によってこれらの行列を参照することができ、したがって、2の同じ力ありますW(0)、W(1)、W(2)...
W(0)として定義され[[1]]ます。
の場合n>0、 W(n)次のようになります。
[[W(n-1) W(n-1)]
[W(n-1) -W(n-1)]]
そうW(1)です:
[[1 1]
[1 -1]]
そしてW(2):
[[1 1 1 1]
[1 -1 1 -1]
[1 1 -1 -1]
[1 -1 -1 1]]
パターンは続きます...
あなたのタスク
入力として整数を取り、任意の便利な形式でn出力/返すプログラムまたは関数を作成しW(n)ます。.svg正しい配列であれば、配列の配列、ブール値の平坦化された配列、画像を指定できます。
標準的な抜け穴は禁止されています。
いくつかのこと:
の場合W(0)、1一度でもラップする必要はありません。単なる整数でもかまいません。
結果のインデックスを1つ作成W(1)できます[[1]]。
テストケース
0 -> [[1]]
1 -> [[1 1]
[1 -1]]
2 -> [[1 1 1 1]
[1 -1 1 -1]
[1 1 -1 -1]
[1 -1 -1 1]]
3 -> [[1 1 1 1 1 1 1 1]
[1 -1 1 -1 1 -1 1 -1]
[1 1 -1 -1 1 1 -1 -1]
[1 -1 -1 1 1 -1 -1 1]
[1 1 1 1 -1 -1 -1 -1]
[1 -1 1 -1 -1 1 -1 1]
[1 1 -1 -1 -1 -1 1 1]
[1 -1 -1 1 -1 1 1 -1]]
8 -> ペーストビン
これはcode-golfなので、各言語で最も短いソリューションが勝ちです!ハッピーゴルフ!
W(1)返品[[1]]、W(2)返品[[1,1],[1,-1]...)