Hola a todos
Llevo horas tratando de formular una posible solucion a este enunciado que
encontre por la web, por favor alguien puede darme una idea de como seria la
solucion.
Saludos!
Llevo horas tratando de formular una posible solucion a este enunciado que
encontre por la web, por favor alguien puede darme una idea de como seria la
solucion.
Código (bash) [Seleccionar]
l = longitud de la cadena
l = len(cad);
factorial de n n!, o fact(n);
funcion residuo mod o %
Una cadena tiene n! permutaciones si su longitud es n
para la permutacion X, X pertenece al intervalo [1, 2, 3, ..., n!]
y para la posicion m-esima en la cadena m pertenece [0,1,2, ..., l-1]
ej. abcd
a: esta en la posicion 0
b: esta en la posicion 1
...
d: esta en la posicion 3
Tenemos un conjunto ordenado o lista ordenada C, en donde estan todos los
caracteres de nuestra cadena, entonces una nueva permutacion para un X dado
seria cad = "";
MIENTRAS m varia entre 0 y (longitud cadena -1)
//concatenacion (+)
c = C[ (X mod (n-1)!)/(n-(1+m))! ]
cad = cad + c
// Al conjunto le eliminamos el elemento instertado en cad
C = C - {c}
m = m+1
]
Saludos!