Вывод на экран всех возможных сочетаний элементов матрицы - C#
Формулировка задачи:
Здарова, есть значит матрица любой размерности, например я ввёл r = 3, c =3
Заполнил матрицу, вывел:
А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 .
Помогайте, чёт не могу сообразить...
Спасибо
string [,] Matrix = new string [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; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д