Código de Delphi - Generador de permutaciones

Generador de permutacionesgráfica de visualizaciones


Delphi

estrellaestrellaestrellaestrellaestrella(4)
Publicado el 02 de Junio del 2007 por Frank Rafael Arteaga
8.782 visualizaciones desde el 02 de Junio del 2007. Una media de 21 por semana
Compilador: DELPHI3.0 o superior y la unit perlexi2 (contenedora de la anterior clase) es combatible con Turbo Pascal 7.0.

Versión 1
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 02 de Junio del 2007gráfica de visualizaciones de la versión: Versión 1
8.783 visualizaciones desde el 02 de Junio del 2007. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.




Comentarios sobre la versión: Versión 1 (4)

Ruben Ruiz Perez
13 de Junio del 2007
estrellaestrellaestrellaestrellaestrella
NO SIRVE, no produce las permutaciones correctas, por ejemplo:
al ingresar los datos 1234 el programa genera:
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321

siendo que por ejemplo cadenas que empiecen con un 1 pueden ser Mas:
1) 1,2,3,4
2) 1,2,4,3
3) 1,3,2,4
4) 1,3,4,2
5) 1,4,2,3
6) 1,4,3,2

dentro del codigo hay un seudo algoritmo el cual tampoco sirve, al implementarlo produce un resultado diferente al que produce el programa:
1) 1,2,3,4
2) 1,2,4,3
3) 1,3,2,4
4) 1,3,4,2
5) 1,4,2,3
6) 1,4,3,2
7) 2,1,3,4
8) 2,1,4,3
9) 2,3,1,4
10) 3,4,1,2
11) 4,2,1,3
12) 4,2,3,1
13) 4,3,1,2
14) 4,3,2,1

Responder
Frank Rafael
05 de Noviembre del 2007
estrellaestrellaestrellaestrellaestrella
Disculpe, pero creo que usted no comprende las funciones que tiene el programa. Le pongo la ayuda textualmente:

Es fácil de usar este programita generador de permutaciones. Tecleas en el edit
una permutación de hasta diez caracteres como máximo, no se puede repetir
ningún carácter, ej: 'aab' no es correcta, '213' si.

Con [Número] sabrás cuantas hay antes de ella en orden lexicográfico.
Con [Siguientes] se generarán todas las permutaciones que le siguen a la que
tecleaste en orden lexicográfico.
Con [Anteriores] se generarán todas las permutaciones que le preseden a la
que tecleaste en orden lexicográfico, pero decresiente.

le explico:

cuando pone usted 1234 el programa genera las siguientes a esa permutación con esos objetos (1,2,3,4). Claro que las que comienzan con 1 son 6, pero 1234 es la primera por lo que no se pone. Veamos las 6 permutaciones de 3 objetos enumeradas por el orden lexicográfico

1) 123
2) 132
3) 213
4) 231
5) 312
6) 321

si en el edit está 213, que es la tercera, al presionar el botón siguiente se pondrán en el memo la 4) , 5) y la 6) y se presiona el botón anteriores
se escribirán la 2) y la 1). Y con número obtendrá la cantidad que hay antes de ella, en este caso 2.

Y con todo respeto, si le interesa, debería revizar bien el código y el comentario del algoritmo porque este funcione correctamente.

¿Qué es seudo algoritmo?
Responder
Luis S.
14 de Enero del 2009
estrellaestrellaestrellaestrellaestrella
En efecto, si por ejemplo se introducen 1234, el programa no muestra :
1243, el código esta mal. Saludos.
Responder
Rafael
07 de Junio del 2009
estrellaestrellaestrellaestrellaestrella
He revisado los resultados y me parece que solo falta insertar el resultado la dedena de referencia es decir, si vas a buscar las combinaciones de 1234, en memo debe de aparecer esta primero.
Por otro lado, se supone que el No de combianaciones posibles de una cadena de n elementos es el factorial de n!, por lo cual si las combinaciones que nos da al combinar 1234 es de 24 combinaciones diferentes, el resultado es correcto
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s1504