В этом задании я попрошу вас найти QR-разложение квадратной матрицы. QR-разложение матрицы A - это две матрицы Q и R, такие что A = QR . В частности, мы ищем, чтобы Q была ортогональной матрицей (то есть Q T Q = QQ T = I, где I - мультипликативная единица, а T - транспонирование), а R - верхней треугольной матрицей (каждое значение ниже ее диагонали должно быть ноль).
Вы напишите код, который принимает квадратную матрицу любым разумным способом и выводит QR-разложение любым методом. Многие матрицы имеют несколько QR-разложений, однако вам нужно только выводить их один раз.
Элементы ваших результирующих матриц должны находиться в двух десятичных разрядах от фактического ответа для каждой записи в матрице.
Это код-гольф соревнование поэтому ответы будут оцениваться в байтах, причем меньшее количество байтов будет лучшим результатом.
Тестовые случаи
Это только возможные выходы, ваши выходы не должны соответствовать всем этим, пока они действительны.
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