Предположим, у меня есть два пустых массива в Python с целочисленными элементами
import numpy as np
a = np.array([2,2,3,6,8,12])
b = np.array([1,4,4,15])
Для каждого элемента в b
я хочу удалить термины из a
, которые к нему добавляются. То есть, поскольку
b [3] = a [2] + a [5], я хочу вернуть новые массивы
a = (2,2,6,8)
b = (1,4,4)
Точно так же мы имеем b [1] =a [0] + a [1], поэтому рекурсивный вывод должен быть
a = (6,8)
b = (1,4)
Поскольку никакие дополнительные элементы b
не могут быть построены из суммы элементов в a
, приведенные выше массивы должныбыть концомЯ хотел бы использовать это для произвольного массива numy
a = np.sort(np.random.randint(1,11,m))
b = np.sort(np.random.randint(1,11,n))
для некоторых m
и n
для возврата упрощенных списков.
Примечание: На основепри обсуждении с @hpaulj и @HansMusgrave:
Есть несколько способов заставить суммы работать. Порядок удаления не важен. Единственным показателем является попытка достичь большинства удалений, чтобы получающиеся массивы a и b были минимизированы по длине.