Оптимизировать код перебора комбинаций - C#

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

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

Цель кода: перебор комбинаций символов из заданного набора и запись в файл. Примерно за полчаса сгенерировалось около 700 тыс. вариантов. Можно ли как то ускорить процесс?
Листинг программы
  1. void parse()
  2. {
  3. string dict = "abcdefghijklmnopqrstuvwxy123456789!@#$%^&*()_+}{|\\/[].,№;:?"; //length=59
  4. StringBuilder word = new StringBuilder();
  5. word.Append("1234567890");
  6. string result = "";
  7. #region foreach
  8. foreach (char c0 in dict)
  9. {
  10. word[0] = c0; result += "L"+word.ToString() + Environment.NewLine;
  11. {
  12. foreach (char c1 in dict)
  13. {
  14. word[1] = c1; result += "L" + word.ToString() + Environment.NewLine; count++;
  15. foreach (char c2 in dict)
  16. {
  17. word[2] = c2; result += "L" + word.ToString() + Environment.NewLine; count++;
  18. foreach (char c3 in dict)
  19. {
  20. word[3] = c3; result += "L" + word.ToString() + Environment.NewLine; count++;
  21. foreach (char c4 in dict)
  22. {
  23. word[4] = c4; result += "L" + word.ToString() + Environment.NewLine; count++;
  24. foreach (char c5 in dict)
  25. {
  26. word[5] = c5; result += "L" + word.ToString() + Environment.NewLine; count++;
  27. foreach (char c6 in dict)
  28. {
  29. word[6] = c6; result += "L" + word.ToString() + Environment.NewLine; count++;
  30. foreach (char c7 in dict)
  31. {
  32. word[7] = c7; result += "L" + word.ToString() + Environment.NewLine; count++;
  33. foreach (char c8 in dict)
  34. {
  35. word[8] = c8; result += "L" + word.ToString() + Environment.NewLine; count++;
  36. foreach (char c9 in dict)
  37. {
  38. word[9] = c9; result += "L" + word.ToString() + Environment.NewLine; count++;
  39. }
  40. }
  41. }
  42. }
  43. }
  44. }
  45. }
  46. }
  47. }
  48. }
  49. }
  50. #endregion
  51. SaveFileDialog sfd = new SaveFileDialog();
  52. if (sfd.ShowDialog() == DialogResult.OK)
  53. {
  54. System.IO.File.WriteAllText(sfd.FileName + ".txt", result);
  55. }
  56. }

Решение задачи: «Оптимизировать код перебора комбинаций»

textual
Листинг программы
  1.            var word = "1234567890".ToCharArray();
  2.             StringBuilder result = new StringBuilder();
  3.             foreach (char c0 in dict)
  4.             {
  5.                 word[0] = c0; result.Append('L').Append(word, 0, word.Length).AppendLine();

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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