Генерация всех сочетаний элементов массива - C#

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

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

Всем здравствуйте, существует массив в котором все буквы английского, как большие так и маленькие, и 10 цифр от 0 до 9. Получается массив из 62 элементов. Необходимо сгенерировать все возможные сочетания элементов массива длиной от 6 до 15 символов... и желательно результат сохранить в текстовый файл... Всем заранее огромное спасибо, желательно писать с небольшими комментариями, т.к. я новичок.

Решение задачи: «Генерация всех сочетаний элементов массива»

textual
Листинг программы
  1. using System.IO;
  2. using System;
  3. using System.Text;
  4.  
  5. namespace ConsoleApplicationTest
  6. {
  7.     internal class Program
  8.     {
  9.         public static void Main(string[] args)
  10.         {
  11.             char[] arAlphabet = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; // используемый алфавит
  12.             int n = 6; // количество мест в комбинации
  13.             char[] arBuffer = new char[n];
  14.             const string fileName = "ResultGenerate.txt";
  15.             // файл при каждом запуске должен создаваться заново
  16.             StreamWriter writer = File.CreateText(fileName);
  17.             writer.Close();
  18.             // Накопитель строк.
  19.             StringBuilder stringBuilder = new StringBuilder((int) Math.Pow(arAlphabet.Length, n)* (n+2));
  20.  
  21.             RecursionGenerateCombinationsToFile(arAlphabet, arBuffer, 0, stringBuilder);
  22.             // Записываем полученный результат в файл.
  23.             writer = File.AppendText(fileName);
  24.             writer.Write(stringBuilder.ToString());
  25.             writer.Close();
  26.         }
  27.  
  28.         private static void RecursionGenerateCombinationsToFile(char[] arAlphabet, char[] arBuffer, int order,
  29.                                                                 StringBuilder stringBuilder)
  30.         {
  31.             if (order < arBuffer.Length)
  32.                 for (int i = 0; i < arAlphabet.Length; i++)
  33.                 {
  34.                     arBuffer[order] = arAlphabet[i];
  35.                     RecursionGenerateCombinationsToFile(arAlphabet, arBuffer, order + 1, stringBuilder);
  36.                 }
  37.             else
  38.             {
  39.                 for (int i = 0; i < arBuffer.Length; i++)
  40.                     stringBuilder.Append(arBuffer[i]);
  41.                 stringBuilder.AppendLine();
  42.             }
  43.         }
  44.     }
  45. }

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


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

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

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы