Tester toutes les possibilites [C]
Résolu
seo610
Messages postés
705
Statut
Membre
-
seo610 Messages postés 705 Statut Membre -
seo610 Messages postés 705 Statut Membre -
Bonjour,
Comment faire un programme en C qui teste tout les possibilités d'une chaîne?
ex : abcd
et affiches les résultat.
Dans l'exemple, il y aurait 24 possibilités différente.
merci
Comment faire un programme en C qui teste tout les possibilités d'une chaîne?
ex : abcd
et affiches les résultat.
Dans l'exemple, il y aurait 24 possibilités différente.
merci
A voir également:
- Tester toutes les possibilites [C]
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester les performances de son pc - Guide
- Tester composant pc - Guide
- Tester disque dur - Télécharger - Informations & Diagnostic
- Tester compatibilité windows 11 - Guide
1 réponse
Bonjour,
Ce sont des permutations pouvez trouver du code assez facilement la dessus par exemple ici : http://bearcave.com/random_hacks/permute.html
«Alexander Bogomolyn's unordered permutation algorithm»
J'ai fait les modifications pour l'utiliser avec une chaîne :
Ce sont des permutations pouvez trouver du code assez facilement la dessus par exemple ici : http://bearcave.com/random_hacks/permute.html
«Alexander Bogomolyn's unordered permutation algorithm»
J'ai fait les modifications pour l'utiliser avec une chaîne :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void print(const int *v, const int size,const char *s)
{
int i;
if (v != 0) {
for (i = 0; i < size; i++) {
printf("%c",s[v[i]-1]);
}
printf("\n");
}
}
void visit(int *Value, int N, int k,const char *s)
{
int i;
static level = -1;
level = level+1; Value[k] = level;
if (level == N)
print(Value, N,s);
else
for (i = 0; i < N; i++)
if (Value[i] == 0)
visit(Value, N, i,s);
level = level-1; Value[k] = 0;
}
int main(void)
{
const char *test="abcd";
int i,N,*Value;
N=strlen(test);
Value=malloc(sizeof(int)*N);
for (i = 0; i < N; i++) {
Value[i] = 0;
}
visit(Value, N, 0,test);
free(Value);
return 0;
}
seo610
Messages postés
705
Statut
Membre
102
parfait, merci