Перебор всех возможных сочетаний из множества - 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();
             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы