W tym wyzwaniu poproszę Cię o znalezienie rozkładu QR macierzy kwadratowej. Rozkład macierzy A na QR to dwie macierze Q i R takie, że A = QR . W szczególności szukamy Q jako macierzy ortogonalnej (to znaczy Q T Q = QQ T = I, gdzie I to tożsamość multiplikatywna, a T to transpozycja), a R to górna macierz trójkątna (każda wartość poniżej jej przekątnej musi zero).
Napisz kod, który przyjmuje macierz kwadratową dowolną rozsądną metodą i generuje rozkład QR dowolną metodą. Wiele macierzy ma wiele rozkładów QR, jednak zawsze potrzebujesz tylko jednego wyjściowego.
Elementy macierzy wynikowych powinny znajdować się w obrębie dwóch miejsc po przecinku rzeczywistej odpowiedzi dla każdego wpisu w macierzy.
Jest to konkurs golfowy , więc odpowiedzi będą oceniane w bajtach, przy czym mniej bajtów oznacza lepszy wynik.
Przypadki testowe
Są to tylko możliwe dane wyjściowe, twoje dane wyjściowe nie muszą pasować do nich wszystkich, o ile są prawidłowe.
0 0 0 1 0 0 0 0 0
0 0 0 -> 0 1 0 0 0 0
0 0 0 0 0 1 , 0 0 0
1 0 0 1 0 0 1 0 0
0 1 0 -> 0 1 0 0 1 0
0 0 1 0 0 1 , 0 0 1
1 2 3 1 0 0 1 2 3
0 3 1 -> 0 1 0 0 3 1
0 0 8 0 0 1 , 0 0 8
0 0 1 0 0 1 1 1 1
0 1 0 -> 0 1 0 0 1 0
1 1 1 1 0 0 , 0 0 1
0 0 0 0 1 0 0 0 0 1 1 0 0 0 1
0 0 0 1 0 0 0 0 1 0 0 1 1 1 0
0 0 1 0 0 -> 0 0 1 0 0 0 0 1 0 0
0 1 1 1 0 0 1 0 0 0 0 0 0 1 0
1 0 0 0 1 1 0 0 0 0 , 0 0 0 0 1