Перебор всех возможных сочетаний из множества - C#
Формулировка задачи:
Всем привет!
Задача состоит в следующем.
задается число, скажем 3 и мы должны перебрать сочетания все чисел от 1 до 3. т.е.
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
Насколько я помню с комбинаторики, таких сочетаний будет 3! = 6.
Так вот может кто задавался задачей запрограмировать такой алгоритм?
Т.е. на входе 1 число на выходе 2-х мерный массив размером [n!][n]
Заранее всем спасибо!
Решение задачи: «Перебор всех возможных сочетаний из множества»
textual
Листинг программы
// Стартуем перебор всех возможных комбинаций индексов элементов массива // Например перебрать все варианты в 5 из 36 так: PereborVariantov(5, 36) // Например перебрать все варианты (3 из 36), (4 из 36), (5 из 36) так: PereborVariantov(3, 5, 36) int[] curN; // массив для получения результатов PereborVariantov v = new PereborVariantov(1, 3, 5); while (v.GetNext(out curN)) // получили в curN значения индексов { for (int i=0; i<curN.Length(); i++) Console.Write(curN[i]+" "); Console.WriteLine(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д