Un millón de gracias, José, es lo que necesitaba.
Saludos, Ing. Tomás Corrales Lemoine De: [email protected] [mailto:[email protected]] En nombre de Jose Selesan Enviado el: Miércoles, 14 de Septiembre de 2011 02:49 p.m. Para: [email protected] Asunto: [puntonet] Algoritmo para permutaciones Hola Tomás. Con una simple recursividad lo podés resolver: private IEnumerable<string> Permutaciones(IEnumerable<string> lista) { if (lista.Count() == 1) return lista; var resultado = new List<string>(); foreach (var elemento in lista) { var listaPermutada = Permutaciones(lista.Where(t => !t.Equals(elemento))); foreach(var permutacion in listaPermutada) resultado.Add(elemento + permutacion); } return resultado; } Saludos Lic. José Selesan 2011/9/14 Tomás Corrales Lemoine <[email protected]> Hola colegas. ¿Alguien me podría ayudar con algún algoritmo para obtener todas las permutaciones posibles de un conjunto finito cualquiera? Por ejemplo, para el conjunto de 4 elementos ABCD las posibles permutaciones serían: 1. ABCD 2. ABDC 3. ACBD 4. ACDB 5. ADBC 6. ADCB 7. BACD 8. BADC 9. BCAD 10. BCDA 11. BDAC 12. BDCA 13. CABD 14. CADB 15. CBAD 16. CBDA 17. CDAB 18. CDBA 19. DABC 20. DACB 21. DBAC 22. DBCA 23. DCAB 24. DCBA Es decir, la cantidad de permutaciones sería igual al factorial de la cantidad de elementos del conjunto. En este caso 4! = 4 x 3 x 2 x 1 = 24. Agradecería cualquier sugerencia. Gracias. Saludos Ing. Tomás Corrales Lemoine -- Aeropuerto Internacional Frank País García de Holguín. -- Aeropuerto Internacional Frank País García de Holguín. Aeropuerto Internacional Frank País García de Holguín.
