Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from functools import cache
- @cache
- def f(m, n):
- match n:
- case 1:
- return m[0][0]
- case 2:
- return m[0][0]*m[1][1] - m[0][1]*m[1][0]
- case n:
- s = 0
- for i in range(n):
- r = []
- for a in range(n):
- l = []
- for b in range(n):
- if a != 0 and b != i:
- l += [m[a][b]]
- if l != []:
- r += [tuple(l)
- ]
- s += f(tuple(r), n - 1)*m[0][i]*(-1)**i
- return s
- n = int(input('Размер матрицы = ? NxN <-> [1; 15]\n'))
- print('\nДалее необходимо ввести элементы матрицы. Разделяйте их пробелом!\n')
- r = tuple(tuple(map(int, input(f'Введите {i+1}-ю строчку матрицы:\n').split())) for i in range(n))
- #from random import randint
- #r = []
- #for i in range(n):
- # l = [randint(-100, 100) for i in range(n)]
- # r += [tuple(l)]
- #print(r)
- #r = tuple(r)
- #print(r)
- print('\nОпределитель данной матрицы = ', f(r, n))
- input('Нажмите любую клавишу для выхода из программы')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement