.NET 4.x Комбинаторика: раскритиковать код - C#
Формулировка задачи:
Добрый день, только начинаю учить c#. Задача - поиск пароля, где psw[1..n] - пароль, случайно написанный,
а alp[1..k] - алфавит. Комбинаторика говорит о размещении, смысл ясен, но хочется чтобы более смыслящие поругали мой бездарный код.
class Operation { // вычисляем количество элементов массива public int Len(double k, double n){ double x = Math.Pow(k, n); return Convert.ToInt32(x); } string[] pwd; string[] alp; public int z = 0; public string[] Pwd { get { return pwd; } set { pwd = value; } } public string[] Alp { get { return alp; } set { alp = value; } } // рекурсивный перебор вариантов public void Fun(int k,int n) { if (k == n) foreach (string x in pwd) Console.WriteLine(x); else { z++; for (int i = z; i <= k; i++) { for (int j = 0; j < alp.Length; j++) pwd[i].Insert(i,alp[j]); if (Match("123",pwd[i])) break; else Fun(k + 1, n); } } } public bool Match(string a, string b) { if (a == b) return true; else return false; } }
Решение задачи: «.NET 4.x Комбинаторика: раскритиковать код»
textual
Листинг программы
string[] pwd; string[] alp; public int z = 0; public string[] Pwd { get { return pwd; } set { pwd = value; } } public string[] Alp { get { return alp; } set { alp = value; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д