Матрица 4×4 задаётся кортежем из 4 кортежей по 4 целых числа в каждом. Посчитать точный определитель этой матрицы. Пользоваться itertools нельзя.
(5, -4, 4, -7), (1, -2, 6, 0), (3, -8, -6, -4), (-1, 2, -9, 3)
Поскольку определитель 3×3 считается просто, я сгенерировал список всех перестановок (0,1,2,3), не забывая про знак, и посчитал сумму в цикле. Рекурсивная функция, порождающая список перестановок, заняла три строки, основная функция — тоже.
702
Результат можно проверить так (хотя в нашем случае результат должен быть строго целым):
>>> import numpy >>> R = (5, -4, 4, -7), (1, -2, 6, 0), (3, -8, -6, -4), (-1, 2, -9, 3) >>> numpy.linalg.det(R) 701.9999999999998