Foros - Stratos

Proyectos => Jad Engine => Mensaje iniciado por: en 17 de Diciembre de 2005, 03:59:52 PM

Título: Algoritmo En C# De Permutaciones Para N Casos
Publicado por: en 17 de Diciembre de 2005, 03:59:52 PM
 hola amigos.

estoy realizando una investigacion y me falta implemetar un algoritmo.
y es el algoritmo de permutaciones sin repeticion.

no busco el algoritmo ordinario, si q el algoritmo te ayude a imprimir los cambios de posiciones, pero para n cantidades.


la investigacion q estoy haciendo consiste en q la computadora genere composiciones musicales.

si estas interesado saber mas en lo q estoy desarrollado.

mi correo es: alaniez@hotmail.com o iezelias@yahoo.es

cuidense y de ante mano muchas gracias
Título: Algoritmo En C# De Permutaciones Para N Casos
Publicado por: gdl en 18 de Diciembre de 2005, 11:27:02 AM
 No sé exactamente a qué te refieres. Voy a intentar responder algo coherente.

Si tienes un algoritmo para las permutaciones ya hecho. Algo que te diga cosas como

3 7 2 6 -> 3 7 6 2, 3 2 7 6, 3 2 6 7, 3 6 2 7...

Puedes hacer lo mismo con los índices para obtener las permutaciones de las posiciones.

Primero, metes los valores que quieres permutar en una tabla.

a[0]=3
a[1]=7
a[2]=2
a[3]=6

Entonces, permutas los índices de la tabla (que son las posiciones)

0 1 2 3 -> 0 1 2 3, 0 1 3 2, 0 2 1 3, 0 2 3 1...

Y si buscas en la tabla, obtienes las permutaciones originales.  O_O  
Título: Algoritmo En C# De Permutaciones Para N Casos
Publicado por: en 21 de Diciembre de 2005, 01:41:41 AM
 mira en la STL el next_permutation. principalmente se haria asi


#include<algorithm>
using namespace std;
int array[TAM];
//lo llenas
sort(array,array+TAM);
do{
//imprime o lo que quieras
}while(next_permutation(array,array+TAM));


la ordenación primera es NECESARIA. El algoritmo de next_permutation hace las permutaciones en orden lexicografico, asi que si quieres todas necesitas que este ordenador al principio