Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Main()
- {
- string conjunto = "123";
- HashSet<string> conjuntoPotencia = GenerarPermutacionParcial(conjunto);
- // Por cada permutación generar los subconjuntos posibles:
- Enumerable.Range(0, conjunto.Length)
- .ToList()
- .ForEach(x =>
- {
- Enumerable.Range(0, conjunto.Length)
- .ToList()
- .ForEach(y =>
- {
- // Genera subconjuntos por medio de la partición de la permutación:
- conjuntoPotencia.Add(conjuntoPotencia.ElementAt(x).Substring(0, y));
- conjuntoPotencia.Add(conjuntoPotencia.ElementAt(x).Substring(y + 1));
- }
- );
- });
- conjuntoPotencia.Select(sub => new String(sub.ToCharArray()
- .OrderBy(elemento => elemento)
- .ToArray()))
- .Distinct()
- .OrderBy(sub => sub.Length)
- .Dump("Conjunto Potencia de {1, 2, 3}");
- }
- private HashSet<string> GenerarPermutacionParcial(string word)
- {
- return new HashSet<string>(
- Enumerable.Range(0, word.Length)
- .Select(i => word.Remove(i, 1).Insert(0, word[i].ToString())));
- } // 123, 213, 312
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement