Вывод на экран всех возможных сочетаний элементов матрицы - C#

Узнай цену своей работы

Формулировка задачи:

Здарова, есть значит матрица любой размерности, например я ввёл r = 3, c =3
 string [,] Matrix = new string [r,c];
Заполнил матрицу, вывел: А11 Б12 В13 Г21Д22 Е23 Ё31Ж31 З33 нужно вывести все сочетания элементов матрицы в таблицу консольки, всего сочетаний получится r^c, в моём случае 27. Пример возможных сочетаний : Варианты сочетаний элементов матрицы: А11Б12В13 | А11Б12Е23 | А11Б12З33 А11Д22В13 | А11Д22Е23 | А11Д22З33 А11Ж32В13 | А11Ж32Е23 | А11Ж32З33 ---------------------------- Г21Б12В13 | Г21Б12Е23 | Г21Б12З33 Г21Д22В13 | Г21Д22Е23 | Г21Д22З33 Г21Ж32В13 | Г21Ж32Е23 | Г21Ж32З33 ---------------------------- Ё31Б12В13 | Ё31Б12Е23 | Ё31Б12З33 Ё31Д22В13 | Ё31Д22Е23 | Ё31Д22З33 Ё31Ж32В13 | Ё31Ж32Е23 | Ё31Ж32З33 типа того Написать такой код, который будет выдавать все сочетания матрицы. При Любых введённых r и c, хотя бы при любых маленьких значений r, c . Помогайте, чёт не могу сообразить... Спасибо

Решение задачи: «Вывод на экран всех возможных сочетаний элементов матрицы»

textual
Листинг программы
    class Program
    {
        static void Main(string[] args)
        {
            string[] strings = new[]
            {
                "A11", "Б12", "В13"
            };
 
            Permute(strings, Output);
            Console.WriteLine();
            Console.ReadLine();
        }
        private static void Output<T>(T[] permutation)
        {
            foreach (T item in permutation)
            {
                Console.Write(item);
                Console.Write(" ");
            }
 
            Console.WriteLine();
        }
 
        public static void Permute<T>(T[] items, Action<T[]> output)
        {
            Permute(items, 0, new T[items.Length], new bool[items.Length], output);
        }
 
        private static void Permute<T>(T[] items, int item, T[] permutation, bool[] used, Action<T[]> output)
        {
            for (int i = 0; i < items.Length; ++i)
            {
                if (!used[i])
                {
                    used[i] = true;
                    permutation[item] = items[i];
 
                    if (item < (items.Length - 1))
                    {
                        Permute(items, item + 1, permutation, used, output);
                    }
                    else
                    {
                        output(permutation);
                    }
 
                    used[i] = false;
                }
            }
        }
    }

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


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

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

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