Как найти возможную уникальную комбинацию числа множества где сумма меньше чем равна чему то
например
мой список пунктов=2,3,4,5,6,7,8,9,10
суммирование цели=30
элемент в наборе=5
выход, как:-
23456,34567,96541, ........, ......
каждый набор должен быть уникальным
и такое же количество не следует повторять
например, 22345 - это неправильно... но 2-это два раза в списке элементов, тогда это правильно.
Что я уже пробовал:
Dim finalList As New List(Of List(Of Object)) i -= 1 'Add the objects to the first sub list. Dim indexs(k - 1) As Integer Dim firstSubList As New List(Of Object) For j As Integer = 0 To k - 1 indexs(j) = j firstSubList.Add(items(j)) Next 'Add the first sub list to the parent list. finalList.Add(firstSubList) 'Continue adding lasts. While indexs(0) <> n - k AndAlso finalList.Count < 2147483647 If indexs(i) < i + (n - k) Then indexs(i) += 1 Dim subList As New List(Of Object) For Each j As Integer In indexs 'Add the objects to the sub list. subList.Add(items(j)) Next 'Add the sub list to the parent list. finalList.Add(subList) Else Do i -= 1 Loop While indexs(i) = i + (n - k) indexs(i) += 1 For j As Integer = i + 1 To k - 1 indexs(j) = indexs(j - 1) + 1 Next Dim subList As New List(Of Object) For Each j As Integer In indexs 'Add the objects to the sub list. subList.Add(items(j)) Next 'Add the sub list to the parent list. finalList.Add(subList) i = k - 1 End If End While
Patrice T
В чем проблема с этим кодом ?