Я использую Python 3, чтобы попытаться найти, какие линейные комбинации набора векторов будут суммироваться с другим вектором. Я использую массивы в качестве векторов.
Например, у меня был бы целевой вектор и матричный «выбор», содержащий все возможные варианты векторов:
targetvector0 = numpy.array([0, 1, 2])
choices = numpy.array([[0, 1, 0], [0, 0, 1], [0, 0, 2], [1, 1, 0]])
Мне нужно что-то, что возвращало бы все возможные комбинации и их целочисленные кратные (нужно, чтобы они были целочисленными), суммировало с целью и игнорировало те, которые не:
option1 = [[1], [2], [0], [0]]
option2 = [[1], [0], [1], [0]]
Я нашел некоторую информацию о numpy.linalg.solve(x, y)
, но она не совсем соответствует тому, что я ищу, или я не знаю, как эффективно ее использовать.