Stepharcher
Messages postés117Date d'inscriptionsamedi 12 avril 2003StatutMembreDerniè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;