Walsh matryca jest specjalny rodzaj macierzy kwadratowej z aplikacji Quantum computing (i zapewne gdzie indziej, ale zależy mi tylko o quantum computing).
Właściwości macierzy Walsha
Wymiary są takie same moc 2. Dlatego, możemy odnieść się do tych matryc o dwa za wykładnik tutaj, nazywając je W(0)
, W(1)
, W(2)
...
W(0)
jest zdefiniowany jako [[1]]
.
Dla n>0
, W(n)
wygląda następująco:
[[W(n-1) W(n-1)]
[W(n-1) -W(n-1)]]
Tak W(1)
jest:
[[1 1]
[1 -1]]
I W(2)
jest:
[[1 1 1 1]
[1 -1 1 -1]
[1 1 -1 -1]
[1 -1 -1 1]]
Wzór trwa ...
Twoje zadanie
Napisz program lub funkcję, która przyjmuje jako liczbę całkowitą n
i drukuje / zwraca W(n)
w dowolnym dogodnym formacie. Może to być tablica tablic, spłaszczona tablica booleanów, .svg
obraz, nazywasz go, o ile jest poprawny.
Standardowe luki są zabronione.
Kilka rzeczy:
Dla W(0)
The 1
nie muszą być owinięte jeszcze raz. Może to być zwykła liczba całkowita.
Masz prawo do 1-indeksu wyników - W(1)
byłoby [[1]]
.
Przypadki testowe
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
To jest golf golfowy , więc wygrywa najkrótsze rozwiązanie w każdym języku! Miłej gry w golfa!
W(1)
zwraca [[1]]
, W(2)
zwraca [[1,1],[1,-1]
...)