Оптимизировать код перебора комбинаций - C#
Формулировка задачи:
Цель кода: перебор комбинаций символов из заданного набора и запись в файл.
Примерно за полчаса сгенерировалось около 700 тыс. вариантов.
Можно ли как то ускорить процесс?
Листинг программы
- void parse()
- {
- string dict = "abcdefghijklmnopqrstuvwxy123456789!@#$%^&*()_+}{|\\/[].,№;:?"; //length=59
- StringBuilder word = new StringBuilder();
- word.Append("1234567890");
- string result = "";
- #region foreach
- foreach (char c0 in dict)
- {
- word[0] = c0; result += "L"+word.ToString() + Environment.NewLine;
- {
- foreach (char c1 in dict)
- {
- word[1] = c1; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c2 in dict)
- {
- word[2] = c2; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c3 in dict)
- {
- word[3] = c3; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c4 in dict)
- {
- word[4] = c4; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c5 in dict)
- {
- word[5] = c5; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c6 in dict)
- {
- word[6] = c6; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c7 in dict)
- {
- word[7] = c7; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c8 in dict)
- {
- word[8] = c8; result += "L" + word.ToString() + Environment.NewLine; count++;
- foreach (char c9 in dict)
- {
- word[9] = c9; result += "L" + word.ToString() + Environment.NewLine; count++;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- #endregion
- SaveFileDialog sfd = new SaveFileDialog();
- if (sfd.ShowDialog() == DialogResult.OK)
- {
- System.IO.File.WriteAllText(sfd.FileName + ".txt", result);
- }
- }
Решение задачи: «Оптимизировать код перебора комбинаций»
textual
Листинг программы
- var word = "1234567890".ToCharArray();
- StringBuilder result = new StringBuilder();
- foreach (char c0 in dict)
- {
- word[0] = c0; result.Append('L').Append(word, 0, word.Length).AppendLine();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д