Advertisement
Guest User

Untitled

a guest
Sep 14th, 2022
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. from functools import cache
  2.  
  3. @cache
  4. def f(m, n):
  5. match n:
  6. case 1:
  7. return m[0][0]
  8. case 2:
  9. return m[0][0]*m[1][1] - m[0][1]*m[1][0]
  10. case n:
  11. s = 0
  12. for i in range(n):
  13. r = []
  14. for a in range(n):
  15. l = []
  16. for b in range(n):
  17. if a != 0 and b != i:
  18. l += [m[a][b]]
  19. if l != []:
  20. r += [tuple(l)
  21. ]
  22. s += f(tuple(r), n - 1)*m[0][i]*(-1)**i
  23. return s
  24.  
  25. n = int(input('Размер матрицы = ? NxN <-> [1; 15]\n'))
  26. print('\nДалее необходимо ввести элементы матрицы. Разделяйте их пробелом!\n')
  27. r = tuple(tuple(map(int, input(f'Введите {i+1}-ю строчку матрицы:\n').split())) for i in range(n))
  28. #from random import randint
  29. #r = []
  30. #for i in range(n):
  31. # l = [randint(-100, 100) for i in range(n)]
  32. # r += [tuple(l)]
  33. #print(r)
  34. #r = tuple(r)
  35. #print(r)
  36. print('\nОпределитель данной матрицы = ', f(r, n))
  37. input('Нажмите любую клавишу для выхода из программы')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement