Скажем, у меня есть массив значений:Numpy - группа данных в сумме значений
a = np.array([1,5,4,2,4,3,1,2,4])
и три «сумма» значения:
b = 10
c = 9
d = 7
Есть ли способ, чтобы сгруппировать значения в a
в группы множеств, где значения объединяются в равные b, c и d? Например:
b: [5,2,3]
c: [4,4,1]
d: [4,2,1]
b: [5,4,1]
c: [2,4,3]
d: [4,2,1]
b: [4,2,4]
c: [5,4]
d: [1,1,2,3]
Примечание сумма b
, c
и d
должен оставаться неизменным (== 26). Возможно, эта операция уже имеет имя?
Похоже, вы пытаетесь решить «проблему ранца» (или его вариант): http://en.wikipedia.org/wiki/Knapsack_problem –
Аналогично, да, я бы назвал это «множественным рюкзаком» проблема». Например. Сколько способов вы можете упаковать в три рюкзака (где стоимость не является проблемой). – atomh33ls
Так что это проблема поиска, а не числовая (numpy). И как и в большинстве проблем поиска, существует решение грубой силы и различные стратегии (часто эвристические) для отсечения мертвых ветвей. – hpaulj