Этот код генерирует все возможные комбинации для данной серии (r) из 1> 28. Мне нужно изменить его, чтобы выбрать «x» количество чисел от 1> 28 и оставить их статичными, а также оставить «y» количество комбинаций сортировки чисел для «x».
Например: если я хочу оставить три числа статическими и две сортировки, это будет выглядеть так:
{1 2 3 4 5}, {1 2 3 5 6}, {1 2 3 6 7}, {1 2 3 - -} и т. Д.
Размер комбинации можно изменить, изменив «r», но я не могу найти способ оставить статические значения.
Также, если это возможно, каков наилучший способ сохранить все напечатанные комбинации (printCombination (arr, r, n)) в файл .txt?
Я знаю, что это неэффективно и слабоумно, но я довольно новичок в программировании;
Для того чтобы сделать комбинации из 1> 28, я изменил структуру «arr» только с числами, которые не должны быть статичными.
Пример:
Если я хочу, чтобы «1,2,3» было статичным в серии, мне нужно удалить их из вызова «arr»: arr = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28];
def printCombination(arr, n, r):
combinationUtil(arr, data, 0,
n - 1, 0, r);
def combinationUtil(arr, data, start,
end, index, r):
if (index == r):
for j in range(r):
print(data[j], end = " ");
print();
return;
i = start;
while(i <= end and end - i + 1 >= r - index):
data[index] = arr[i];
combinationUtil(arr, data, i + 1,
end, index + 1, r);
i += 1;
arr = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 , 19, 20, 21,
22, 23, 24, 25, 26, 27, 28];
r = 2;
n = len(arr);
printCombination(arr, n, r);
# This code is contributed by mits
Я ожидаю, что смогу оставить количество чисел «x» статическим, а количество «y» отсортировав все возможные комбинации по «x». Спасибо за ваше терпение и время.
источник: geeksforgeeks.org/print-all-possible-combination-of-r-elements-in-a-given-array-of-size-n/