一个Walsh矩阵是一种特殊的具有方阵在量子计算的应用程序(也可能是其他地方,但我只关心量子计算)。
沃尔什矩阵的性质
尺寸是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 ->
Pastebin
这是代码高尔夫,因此每种语言中最短的解决方案是成功的!打高尔夫球快乐!
W(1)
退货[[1]]
,W(2)
退货[[1,1],[1,-1]
......)