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ą ni drukuje / zwraca W(n)w dowolnym dogodnym formacie. Może to być tablica tablic, spłaszczona tablica booleanów, .svgobraz, nazywasz go, o ile jest poprawny.
Standardowe luki są zabronione.
Kilka rzeczy:
Dla W(0)The 1nie 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]...)