Генерация всех сочетаний элементов массива - C#
Формулировка задачи:
Всем здравствуйте, существует массив в котором все буквы английского, как большие так и маленькие, и 10 цифр от 0 до 9. Получается массив из 62 элементов. Необходимо сгенерировать все возможные сочетания элементов массива длиной от 6 до 15 символов... и желательно результат сохранить в текстовый файл...
Всем заранее огромное спасибо, желательно писать с небольшими комментариями, т.к. я новичок.
Решение задачи: «Генерация всех сочетаний элементов массива»
textual
Листинг программы
using System.IO; using System; using System.Text; namespace ConsoleApplicationTest { internal class Program { public static void Main(string[] args) { char[] arAlphabet = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; // используемый алфавит int n = 6; // количество мест в комбинации char[] arBuffer = new char[n]; const string fileName = "ResultGenerate.txt"; // файл при каждом запуске должен создаваться заново StreamWriter writer = File.CreateText(fileName); writer.Close(); // Накопитель строк. StringBuilder stringBuilder = new StringBuilder((int) Math.Pow(arAlphabet.Length, n)* (n+2)); RecursionGenerateCombinationsToFile(arAlphabet, arBuffer, 0, stringBuilder); // Записываем полученный результат в файл. writer = File.AppendText(fileName); writer.Write(stringBuilder.ToString()); writer.Close(); } private static void RecursionGenerateCombinationsToFile(char[] arAlphabet, char[] arBuffer, int order, StringBuilder stringBuilder) { if (order < arBuffer.Length) for (int i = 0; i < arAlphabet.Length; i++) { arBuffer[order] = arAlphabet[i]; RecursionGenerateCombinationsToFile(arAlphabet, arBuffer, order + 1, stringBuilder); } else { for (int i = 0; i < arBuffer.Length; i++) stringBuilder.Append(arBuffer[i]); stringBuilder.AppendLine(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д