Demande de calcul de combinaisons ?

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
EhJoe
Messages: 7
Enregistré le: 14 Mar 2008, 12:56

Demande de calcul de combinaisons ?

par EhJoe » 04 Nov 2009, 10:18

Bonjour,

je cherche à calculer des séries, mais je n'ai pas le niveau, je n'y arrive pas, alors si quelqu'un veut bien me poser le calcul (en arithmétique informatique), il sera bien gentil, voici mon problème:

Dans un jeu de 52 cartes (de 2 à rois et As (pas de 1 donc)), de 4 couleurs dans l'odre de force "p", "c" = coeur, "k" = carreau et "t", je cherche toutes les combinaison possibles de 5 cartes se suivant en valeur sans qu'elles soitent toutes de la même couleur. En notation (couleur+valeur sur 2 position), exemple p03 (pique 3 (4 de pique en partant de 1 pour la valeur de carte 2), donc 3 octet par carte.
Je cherche toutes les combinaisons, exemple :
p01 p02 p03 p04 c01
p01 p02 p03 p04 c02 ...
12345 23456 34567 45678 56789 678910 7891011 89101112 910111213

C'est exactement ça en valeurs, et uniquement, mais avec deux conditions, que toutes les combinaisons de couleurs y soient, sauf les combinaisons de 5 cartes de la même couleur :mur:

Ça doit donner un truc dont le principe est le suivant :

dim combi(???) as string ' lgr = 3 * 5 = 15 octets (5 cartes notées sur 3 octets)
dim i as long
dim j a long
dim k as long
dim c(5) as string
for i = 0 to ???_nb_combinaisons
for j = 1 to 4
if i = 1 then combi(i) = "p"
if i = 2 then combi(i) = "c"
if i = 3 then combi(i) = "k"
if i = 4 then combi(i) = "t"
next j
for k = 1 to 13
combi(i) = combi(i) & format(k, "00")
if len(combi(i) = 15 then
c(1) = mid(combi(i),1,1) ' vérif des couleurs identiques refusées (couleur au lieu de quinte)
c(2) = mid(combi(i),4,1)
c(3) = mid(combi(i),7,1)
c(4) = mid(combi(i),10,1)
c(5) = mid(combi(i),13,1)
if c(1) = c(2) and c(2) = c(3) and c(3) = c(4) and c(4) = c(5) then combi(i)="" ' pas 5 couleurs identiques
goto iPlus1
endif
next k
iPlus1:
next i

Mais évidemment ça ne marche pas ainsi, je ne sais pas le faire, toutefois pour l'exemple il y a les ingrédients de base afin de donner une idée sur la pésentation qu'il me faut pour savoir l'exploiter...

Alors merci à ceux qui voudront et sauront, cordialement.

Joe.



Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 20:29

par Joker62 » 04 Nov 2009, 10:33

Hé bien si j'ai compris, je dirais :
2 tableaux

Valeur[12] = {'2','3',...,'D','R','A'}
Couleur[3] = {'P','C','K','T'}

Le principe est le suivant :
Choisir un index i : de 0 à 12

Les cartes à tirer seront de la forme _(i) ; _(i+1); _(i+2); _(i+3); _(i+4)
Les indices étant pris modulo 13

Maintenant il reste à établir les combinaisons possible en y ajoutant les Couleurs; ce que je ne fais pas car 4^5 possibilités...

EhJoe
Messages: 7
Enregistré le: 14 Mar 2008, 12:56

par EhJoe » 04 Nov 2009, 10:58

Joker62 a écrit:Hé bien si j'ai compris, je dirais :
2 tableaux

Valeur[12] = {'2','3',...,'D','R','A'}
Couleur[3] = {'P','C','K','T'}

Le principe est le suivant :
Choisir un index i : de 0 à 12

Les cartes à tirer seront de la forme _(i) ; _(i+1); _(i+2); _(i+3); _(i+4)
Les indices étant pris modulo 13

Maintenant il reste à établir les combinaisons possible en y ajoutant les Couleurs; ce que je ne fais pas car 4^5 possibilités...


Bonjour,

Merci, en effet, si je te suis :
- index de 0 à 12, j ne pense pas si tu fais comme indiqué ensuite, i, i+1..., suffit de fait un index de 0 à 8 (9 valeurs), soit

dim c(?) as string
dim i as long
for i = 0 to 8
c=i
c=c + i+1
c=c + i+2
c=c + i+3
c=c + i+4
next i

Pour le modulo je ne sais ps ce que c'est, je ne connais que le modulo informatique qui est le reste d'un division d'entiers
x = 10 modulo 3
x = reste de 10 / 3 : x = 1
Alors "modulo de 13" ???

Pour les couleurs tu ne fais pas (le calcul), mais c'est justement ce que je demande :marteau:
Tu n'as pas besoin d'écrire 4^5, ce qui fait dans les 4000 lignes je crois, il suffit d'avoir la formule...

J'y réfléchis en même temps et je me dis que pour ne pas avoir de couleurs identiques on peut faire des boucles sur les couleurs, mais avec des index décalés, par exemple : p=1, c=2, k=3 et t=4, puis +1 à chaque et si > 4, revient à 1, ceci 4 fois pour chaque combinaison (9 au total), puis in fine, il faudrait faire tourner entre elles toutes les combinaisons générées, comme si on cherchait en fait un quintet dans tous les ordres, je ne suis pas certain de trouver, je pense à ceci :
Si nous avon par exemple la combinaison
p01 p02 p03 p04 c05
En bien on fait ensuite tourner le premier octet (couleur) de chaque carte afin d'avoir 5 nouvelles combinaisons, je ne sais pas si c'est la solution ?

Sinon, peu importe les doublons et 5 couleurs identiques, ça, ça s'enlève en un rien de temps en progammation...

Bon, ben merci encore, attendons les formules, peut être ?

Cordialement.

Joe.
.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 33 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite