I am trying to find the determinant of a 4x4 matrix using nested list operations. I gave the following code
def determinant_4x4(matrix: list[list[int|float]]) -> float:
# Your recursive implementation here
def recursedet(matrix):
if len(matrix) == 2:
return matrix[0][0]*matrix[1][1] - matrix[0][1]*matrix[1][0]
sum = 0
for i in range(len(matrix)):
ele = matrix[0][i]
del matrix[0]
for row in matrix:
del row[i]
sum += ele*((-1)**i)*recursedet(matrix)
return sum
return recursedet(matrix)
But I am getting the error: IndexError: list index out of range
However, when I asked GPT to rectify this, it said that my code gave the same output as the rectified version but the matrix was corrupted. Can anybody help me understand what does this mean?
matrix[0]and that won't exist if matrix is empty. Please do note that I haven't actually run your code. Just a note.list[list[int|float]over anumpyarray? Is this an assignment? Anyway, for a recursive determinant function I would rather slice the portions you need to pass into the recursion. Avoid to delete in-place, you are pulling the ground from your own feet.