一个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]......)