Permutation

Résolu
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 14 oct. 2004 à 10:30
Stepharcher Messages postés 117 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 8 septembre 2008 - 22 oct. 2004 à 09:49
Salut:

Je souhaite savoir comment peut-on générer toutes les séquences possibles à partir d'un ensemble donné de chiffres
par exemple(0,1,2,...,9).

Je préfère que ça soit en utilisant le langage C/C++.

Et Merci...

2 réponses

Stepharcher Messages postés 117 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 8 septembre 2008
22 oct. 2004 à 09:49
// Fonction qui fait la permutation
void Permutation(int n)
{
int i;

// déclare un tbl d'entier de taille n
int* tbl;
tbl=(int*)malloc(sizeof(int)*n);

// Remplit
for(i=0; i<n; i++)
tbl[i]=0;

// Fait les permutations
while(tbl[0]<n)
{
// Avance le dernier nombre
tbl[n-1]++;

// Vérifie les valeurs obtenu
for(i=n-1; i>=1; i--)
if(tbl[i]==n)
{
tbl[i]=tbl[i]%n;
tbl[i-1]++;
}
//
// Il y a permutation si chaque nombre est unique et si l'on a pas fait toute les permutations
if( Unicite(tbl, n) && tbl[0]<n)
{
// Affiche tous les éléments
for(i=0; i<n; i++)
printf("%d ", tbl[i]);
printf("\n");
}/**/
}

free(tbl);
}

// Fonction qui détermine l'unicité de chaque nombre
char Unicite(int* tbl, int n)
{
int i, j;

for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
if(i!=j)
if(tbl[i]==tbl[j])
return 0;
}

return 1;
}

int main(int argc, char *argv[])
{
Permutation(6);

system("PAUSE");
return 0;
}

Ca marche... c pas optimisé mais ça tu peux le faire toi même... Bon courage :)

>:) Stéph >:)
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 oct. 2004 à 12:59
Qu'est ce qu'une séquence?
0
Rejoignez-nous