Nina0770
Messages postés5Date d'inscriptionsamedi 6 décembre 2008StatutMembreDernière intervention14 décembre 2008
-
6 déc. 2008 à 22:29
cs_blanc76
Messages postés42Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention21 avril 2009
-
29 déc. 2008 à 23:44
Salut,
Donc je suis nouvelle programmeuse et je veut réaliser le programme suivant:
soit un tableau de 8 cases de type entier, je veut afficher toutes les probabilités possibles des combinaisons de 8 entiers, commancant par les nombres de un chiffre jusqu'à le nombre de 8 chiffres
(0,5,7,6,3,4,1,9)
les resultats: 0,5,7,6,3,4,1,9,05,07,06,......,057,056,053....,0576,0573,...........,05763419
Vraiment un grand merci pour vous.
Bon courage cher(e)s programmeur(euse)s.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 7 déc. 2008 à 00:26
Bonsoir,
nombre de combin de 2 parmi 8
nombre de combin de 3 parmi 8
nombre de combin de 4 parmi 8
nombre de combin de 5 parmi 8
nombre de combin de 6 parmi 8
nombre de combin de 7 parmi 8
nombre de combin de 8 parmi 8
Voir sur ce site les études réalisées sur ce sujet (Ma petite combine etc...)
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 20183 7 déc. 2008 à 07:21
Bonjour Nina,
Tu inclues dans une boucle la suite de calcul du CNP que t'a donné Cantador par un appel de fonction du genre :
Function FCNP(n,p : Integer) : LongInt;
begin
Result := Trunc ( Factorielle(n) div ( Factorielle(p) * Factorielle(n-p) ) )
end;
Factorielle est également une fonction à écrire :
Function Factorielle(n : word): LongInt;
begin if n > 1 then Result :n * factorielle(n-1) // la fonction s'appelle elle-même récursivité
else Result := 1;
end;
Bon c'est peut être pas optimisé!
Cordialement
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 8 déc. 2008 à 16:56
voilà un exemple donnant les combinaisons de 6 parmi 8 sur ton cas particulier :
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
a, b, c, d, e, f: integer;
CONST
NUM: ARRAY[0..7] OF integer = (0, 5, 7, 6, 3, 4, 1, 9);
BEGIN
Memo1.Clear;
FOR a := 0 TO (length(NUM) - 5) DO
FOR b := a + 1 TO (length(NUM) - 4) DO
FOR c := b + 1 TO (length(NUM) - 3) DO
FOR d := c + 1 TO (length(NUM) - 2) DO
FOR e := d + 1 TO (length(NUM) - 1) DO
FOR f := e + 1 TO (length(NUM)- 1) DO
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 20183 8 déc. 2008 à 23:34
@ Cantador
Je suis pas sûr que ta fonction soit plus rapide en particulier sur des ensembles plus importants. ça serait intéressant de vérifier. En tout cas, elle est plus intuitive et donc plus compréhensible pour le débutant.
Cordialement
Jean_Jean
Vous n’avez pas trouvé la réponse que vous recherchez ?
Nina0770
Messages postés5Date d'inscriptionsamedi 6 décembre 2008StatutMembreDernière intervention14 décembre 2008 10 déc. 2008 à 16:30
Je vous remercie mes chers.
Donc la partie de cantador me donne les cas sans réptition, je veut qu'une combinaison soit aussi répetée .
Exple: (0,1,5)
resultats:
(0,1,5,00, 11, 55, 01,10,05,50,15,51,015,051,105,150,501, 510) comme ça.
Merci une autre fois mes chers amis
Bonne programmation.
Nina0770
Messages postés5Date d'inscriptionsamedi 6 décembre 2008StatutMembreDernière intervention14 décembre 2008 10 déc. 2008 à 16:39
peut etre le mot combinaison n'est pas bien placé donc je prefaire d'utilisé (le cas possible).
Merci une utre fois et j'attend vos interventions.
Salut
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 20183 10 déc. 2008 à 17:16
Bj nina!
Aux vues de ce que tu dis, c'est donc pas une Combinaison au sens mathématique des calculs du dénombrement que tu cherches. tu dois te poser 3 questions :
1. Peux-tu trouver des éléments répétés dans ton ensemble?
(0,5,7,6,3,4,1,9)
Les resultats: 0,5,7,6,3,4,1,9,05,07,06,......,057,056,053....,0576,0573,...........,05763419
Apparamment, dans ton listage Non (iln'y a pas de 055 par exemple), donc tu peux écarter les P_List 2. La place d'un élément dans ta liste sert-elle à différentier tes sorties? Souhaites-tu obtenir en sortie les valeurs de liste : 025 et 052 par exemple?
Si Oui, alors tu as à traiter une Permutation ou un Arrangement dont les formules sont différentes de ce que je t'ai donné plus haut.
Si Non, c'est donc que c'était bien une Combinaison. La combinaison n'accepte pas la répétition et donc peu importe que tes sorties soient (025) ou (205), les trois mêmes chiffres sont utilisés.
3. La troisième question est faite pour savoir si tu as à traiter une permutation ou un Arrangement. je pourrai te répondre quand tu auras éclairci ton problème!
J'aurai du Publier mon Tutorial réalisé sur les Dénombrements. Peut-être si les Administrateurs me le permettent, je pourrai envoyer des copies d'écran du Logiciel de démonstration qui n'est pas terminé. Ces copies pourraient se faire sous forme pdf et pourraient t'aider car je prend des exemple et des simulations pour chaque cas! Je vais leur poser la question. Car ils tellement chauds et excités sur le site que je vais me faire incendier si je publie des choses non terminées comme mes sources précédents!...
Nina0770
Messages postés5Date d'inscriptionsamedi 6 décembre 2008StatutMembreDernière intervention14 décembre 2008 13 déc. 2008 à 07:31
Ohhh un grand merci, mes chers.
Ok, je ne sais ni combinaison, ni arrengement, ni permutation cr je ui pas mathematicienne, je fait de la sociologie et j'ai besoin a ce programme pour m'aider sur les enquetes et les sondages.
Jean, je t'explique c'est permet meme les repetitions de type (025, 205) et meme de type(000,222).
J'espere que vous pouvez me comprendre, mais promesse dès je termine cette partie je doit prendre les algorithmes,
et si vous voulez mon email: [mailto:nina_0770@yahoo.fr nina_0770@yahoo.fr].
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 20183 13 déc. 2008 à 11:55
Bj
Si tu veux répéter les valeurs dans ta liste (comme 000, 002, 022, 222 etc.) alors tu as une P_Liste et la Formule est :
Nb = N P
N est ton ensemble de départ : (0,5,7,6,3,4,1,9)
P est le nombre d'éléments mis ensemble : de 1 à 8
Donc Nb = 81 + 82 + 83 + 84 + 85 + 86 + 87 + 88 ce qui te fait déjà un bon nombre!
La programmation n'est pas très compliqué :
- initialisation des données (Tableau de départ T = [ 0,5,7,6,3,4,1,9 ])
- Pour n = 1 à 8
Pour p = 1 à 8
écrire (valeur = f(T)) à toi de réfléchir un peu!
Fin p
fin n
Ex : avec (0,5,7) : N = 3. Nb 31+32+33 39 sorties = {(0),(5),(7), (00),(55),(77),(05),(50),(07),(70),(57),(75),(000),(055),(077),(057),(075),(005) ,(007),(050),(070),(555),(500),(577),(507),(570),(550),(557),(505),(575),(777),(700),(755),(705),(750),(770),(775),(707),(757)}
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 20183 13 déc. 2008 à 11:57
Nina, j'oubliai :
Si tu as des difficultés en programmation, il vaudrait peut-être mieux que tu cherches à faire tes analyses sous excel ou un freeware en stat
Cordialement
Jean_Jean
cs_blanc76
Messages postés42Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention21 avril 2009 29 déc. 2008 à 23:41
Salut,
Je croit que tu doit pensé à trois choses:
1- Le produit cartésien.
2- J'ai (0,1).
(0,1) * (0,1) ======> (00,01,10,11). Ce qui donne (0,1,00,01,10,11).
3- Pense aussi aux pointeurs.
Peut être tu peut trouvé la solution .
cs_blanc76
Messages postés42Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention21 avril 2009 29 déc. 2008 à 23:44
Attention !!!! il faut faire des testes de 3 nombres sinon ton programme termine l'exécution dans environ 2 jours. lollllll
tu es avec moi Jean_Jean ou non ?