Может ли определитель матрицы размера 9 x 9 с элементами из множества {–1, 1} быть равным 31? 32?
Необходимо как можно эффективнее решить данное задание на Python. Свои размышления начала с простой идеи: с помощью декартова произведения получить и перебрать все возможные варианты элементов матрицы, (которых должно быть 81) состоящих из 1 и -1. Далее полученные списки преобразовать в матрицы размера 9*9 и вычислить определители каждой такой матрицы. Таким образом, перебрав все варианты можно наверняка либо получить результат 31 или 32 или нет. Но возникает проблема в операции декартового произведения, такой подход очень долгий, а смысл заключается в том, чтобы код работал как можно эффективнее, но я не знаю, что с этим делать... Подскажите, пожалуйста, как можно решить это задание быстрее, может параллельное выполнение кода необходимо? Мой код на Python:
from itertools import product
import numpy as np
for tple in product([1, -1], repeat = 81): # декартово произведение
lst = list(tple) # преобразуем кортеж в список
print(lst)
np_lst = np.array(lst) # преобразуем список в массив numpy
A = np_lst.reshape(9,9) # преобразование в матрицу
print(A)
print("Определитель: ", np.linalg.det(A))