CALCULER LES COMBINAISONS POSSIBLES D'UNE SÉQUENCE
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008
-
18 août 2004 à 17:16
Virlorigie
Messages postés9Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention10 juillet 2010
-
25 mars 2009 à 16:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Virlorigie
Messages postés9Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention10 juillet 2010 25 mars 2009 à 16:28
Bonjour,
Désolée du dérangement, j'ai trouvé mon erreur, je ne lançais pas le programme correctement, ça marche très bien.
Mes petites remarques en tant qu'utilisatrice et débutante en programmation :
- C'est dommage que les chiffres sont imposés de 1 à 4 et qu'on ne puisse pas saisir les chiffres puis demander toutes les combinaisons de ce qu'on a choisi. Bien entendu, j'ai testé en changeant dans le code même les chiffres 1, 2, 3 et 4 par d'autres pour voir et ça marche très bien.
- Dans ta description tu nous mets ceci :
"Ce code permet à partir d'une séquence de chiffres ou de lettres de donner tt les combinaisons possibles qu'on peut faire avec"
Cependant, cela ne semble concerner que les chiffres et de façon imposée puisqu'à aucun moment le programme me demande de saisir quoi que ce soit, il me donne directement la combinaison de ce qui est contenu dans le programme.
A moins d'une erreur de mon côté ?
Bravo en tout cas pour ce bout de code.
PS : je t'ai mis 8/10 tout de même. Bien que y'aurai des petites choses à améliorer me semble-t-il. ;)
Virlorigie
Messages postés9Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention10 juillet 2010 25 mars 2009 à 02:22
Bonjour,
Votre code me semble intéressant me concernant ça pourrait m'être utile. J'ai réussi à le compiler avec Borland C++ Compiler 5.5 sans problème après modification selon les recommandations de Blackgoddess.
Cependant, quand je veux lancer mon .exe il ne se lance pas...
Auriez-vous une suggestion à me proposer ?
Merci beaucoup par avance. Et bravo pour votre code !
bonjour,
j'ai pas compris cette partie du programme :
combin(tab,i+1,size_tab); permute(tab,i,j);
je veux dire apres avoir terminer la partie combin on reviens à permute surtout que quand on enleve cette partie il y a repetion
merci de votre aide
kritical
Messages postés9Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention 3 décembre 2005 1 déc. 2005 à 21:56
void combin(unsigned char tab[],int i, int size_tab)
{
unsigned char j;
if (i==size_tab)
{
print_tab(tab,size_tab);
}
else
for(j=i;j<size_tab;j++)
{
permute(tab,i,j);
combin(tab,i+1,size_tab);
permute(tab,i,j);
}
g pas comris la recusrsivité de cette foction
qq peut m'expliquer car g un petit probleme avec les fonctions
recursifs
Strick9
Messages postés40Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention 9 mai 2007 9 nov. 2005 à 19:34
pouvez vous transformer ce code source ainsi il sera possible d'effectuer des combinaison de n éléments
main()
{
unsigned char tab[]={1,2,3,4};
combin(tab,0,4);
}
au lieu de 4 éléments seulements. Merci d'avance.
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 20 août 2004 à 10:53
main()
{
...
}
=>
int main()
{
...
return 0;
}
pinderlot
Messages postés59Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention 1 septembre 20041 19 août 2004 à 16:53
lol.
"rien ne sert d'écouter, il faut capter..." pour parodier une certaine fable.
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 19 août 2004 à 15:58
Rholalal c'est bien ce qui me semblait : stats, probas, dénombrement, etc... j'ai vraiment rien capté :D (bon j'ai ptête pas tout écouté non plus c'est vrai :D)
merci.
zinou76
Messages postés5Date d'inscriptionvendredi 9 mai 2003StatutMembreDernière intervention19 août 2004 19 août 2004 à 15:45
Oui c exactement ça. Pour un ensemble de n, on a n! combinaisons possible
pinderlot
Messages postés59Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention 1 septembre 20041 19 août 2004 à 13:19
Euh... bin non ce n'est pas 2^5. c plutôt 5! (factorielle 5). donc pour n=5 ca fait 24.
Dans un ensemble de n éléments, il y a n! combinaisons.
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 18 août 2004 à 17:16
Si je ne m'abuse pas, c'est tout simplement le nombre de parties de ton ensemble :
Si ton ensemble contient 5 "scalaires" (une chaine de caracteres peut etre considérée comme un scalaire, ici seulement hein), tu auras alors 2^5
Plus généralement, dans un ensemble U de n élements, tu as 2^(card U) = 2^n
25 mars 2009 à 16:28
Désolée du dérangement, j'ai trouvé mon erreur, je ne lançais pas le programme correctement, ça marche très bien.
Mes petites remarques en tant qu'utilisatrice et débutante en programmation :
- C'est dommage que les chiffres sont imposés de 1 à 4 et qu'on ne puisse pas saisir les chiffres puis demander toutes les combinaisons de ce qu'on a choisi. Bien entendu, j'ai testé en changeant dans le code même les chiffres 1, 2, 3 et 4 par d'autres pour voir et ça marche très bien.
- Dans ta description tu nous mets ceci :
"Ce code permet à partir d'une séquence de chiffres ou de lettres de donner tt les combinaisons possibles qu'on peut faire avec"
Cependant, cela ne semble concerner que les chiffres et de façon imposée puisqu'à aucun moment le programme me demande de saisir quoi que ce soit, il me donne directement la combinaison de ce qui est contenu dans le programme.
A moins d'une erreur de mon côté ?
Bravo en tout cas pour ce bout de code.
PS : je t'ai mis 8/10 tout de même. Bien que y'aurai des petites choses à améliorer me semble-t-il. ;)
25 mars 2009 à 02:22
Votre code me semble intéressant me concernant ça pourrait m'être utile. J'ai réussi à le compiler avec Borland C++ Compiler 5.5 sans problème après modification selon les recommandations de Blackgoddess.
Cependant, quand je veux lancer mon .exe il ne se lance pas...
Auriez-vous une suggestion à me proposer ?
Merci beaucoup par avance. Et bravo pour votre code !
24 déc. 2008 à 17:58
j'ai pas compris cette partie du programme :
combin(tab,i+1,size_tab); permute(tab,i,j);
je veux dire apres avoir terminer la partie combin on reviens à permute surtout que quand on enleve cette partie il y a repetion
merci de votre aide
1 déc. 2005 à 21:56
{
unsigned char j;
if (i==size_tab)
{
print_tab(tab,size_tab);
}
else
for(j=i;j<size_tab;j++)
{
permute(tab,i,j);
combin(tab,i+1,size_tab);
permute(tab,i,j);
}
g pas comris la recusrsivité de cette foction
qq peut m'expliquer car g un petit probleme avec les fonctions
recursifs
9 nov. 2005 à 19:34
main()
{
unsigned char tab[]={1,2,3,4};
combin(tab,0,4);
}
au lieu de 4 éléments seulements. Merci d'avance.
20 août 2004 à 10:53
{
...
}
=>
int main()
{
...
return 0;
}
19 août 2004 à 16:53
"rien ne sert d'écouter, il faut capter..." pour parodier une certaine fable.
19 août 2004 à 15:58
merci.
19 août 2004 à 15:45
19 août 2004 à 13:19
Dans un ensemble de n éléments, il y a n! combinaisons.
18 août 2004 à 17:16
Si ton ensemble contient 5 "scalaires" (une chaine de caracteres peut etre considérée comme un scalaire, ici seulement hein), tu auras alors 2^5
Plus généralement, dans un ensemble U de n élements, tu as 2^(card U) = 2^n
Rectifiez moi si je me trompe.