получить возможные комбинации в DataRow для заданного значения - PullRequest
0 голосов
/ 12 января 2011

в .Net есть ли способ найти соответствующие комбинации для данного значения в таблице данных?

таблица данных похожа на

ItemID, Имя, Количество

1, А, 2

2, В, 1

3, С, 3

4, Д, 4

5, Е, 5

необходимо получить возможные комбинации с соответствующим столбцом Количество.

например. если я сдал 8

нужен результат DataTable (2 + 1 + 5 = 8, 3 + 5 = 8, 1,3,4 = 8) как

комбинация ID, Количество, NoOfItems (количество строк для комбинацииID)

1, 2, 3

1, 1, 3

1, 5, 3

2, 3, 2

2, 5, 2

3, 1, 3

3, 3, 3

3, 4, 3

Ответы [ 2 ]

0 голосов
/ 13 января 2011

Я получил идею из алгоритма C # - найдите наименьшее количество необходимых объектов

, но все еще не могу изменить его в соответствии с моим требованием.Коз.в моем случае есть повторяющиеся значения,

var list = new[] { 2, 3, 4, 6, 7, 2, 4, 5, 3 };
Array.Sort<int>(list);
var ans = Knapsack(list, 9);

это вызовет исключение InvalidOperationException («Последовательность не содержит элементов»)

есть идеи, чтобы решить эту проблему?

0 голосов
/ 12 января 2011

Вы можете использовать рекурсивный CTE , чтобы найти все комбинации, как в этом SO-Вопросе: Получение всех возможных комбинаций, которые подчиняются определенному условию, с MS SQL

...