SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: pyro en Domingo 6 de Junio de 2004, 23:22
-
Algo facil pero no estoy pudiendo resolverlo.. como puedo hacer para coseguir todas las combinaciones posibles de un vector de caracteres.. por ejemplo sea el vector a={'A', 'B', 'C'}
las combinaciones.. serian.. ABC, ACB, BAC, BCA, CAB, CBA... ALGO asi.. no se como puedo hacer..
y que le funcion me devuelva tdas la combinaciones.. como hago?? toy perdido :blink:
-
tiene que ser algo asi como
for(i=0; i<MAXVECTOR; i++){
for(j=0; j<MAXVECTOR; j++){
if(i!=j){
aux[j]= vector;
}
}
}
no se me esta viniendo bien la idea a la cabeza.. :unsure:
-
Puede ser que quieras las permutaciones de 3 caracteres distintos ?
-
En realidad no es solo de tres caracteres distintos.. necesito hacerlo con un array grande, un char array[200]... no es una tarea, ya digo de ante mano, estoy haciendo un trabajo con arboles binarios, y estaba necesitando, ya intente hacerlo pero nome sale :( para ser mas claro.. esto es lo que yo necesito.. si el array={A, B, C, D} la funcion me tendria que pasar...
A B C D
A B D C
A D B C
D A B C
y asi siguiendo.. :(
-
Te envio una proposicion de funcion recursiva para las permutaciones de N caracteres distintos :
#define MAX 4 // modificar de acuerdo a lo necesario
int p[MAX],counter = 0;
void Permutation(int level)
{
if(level == MAX)
{
ShowArray();// impresion segun valores ascii
return;
}
for(int i = 0; i < MAX; i++)
{
if(p == -1)
{
p = level;
Permutation(level+1);
p = -1;
}
}
} // PERMUTATION
llamado desde la funcion principal :
primero todos los valores p = -1;
Permutation(0);
-
Hola!! Muchas gracias :) estuve viendo tu proposicion y le implente algunas cosas para que me haga lo que necesitaba.. ahora mi programita ya esta.. gracias :) :)