Algorithme

Signaler
Messages postés
7
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2005
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
bonjour


Je mets dans une liste (avec visual basic 6) toutes les combinaisons de 3 numéros (ex: pour le loto national, il y a 18424 combinaisons possible) donc : 1-2-3 / 1-2-4 etc jusqu'à 47-48-49.
Je veux obtenir dans une autre liste le nombre minimal de combinaison de 6 numéros qui englobent les 18424 combinaisons de 3 numéros.


Question :
Quel est l'algorithme le plus simple pour résoudre ce problème ?


Merci

12 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
Dim i As Long

Dim j As Long

Dim n As Long





For i = 1 To 18423

DoEvents

For j = i + 1 To 18424

n = n + 1

Next

Next



MsgBox n


Daniel
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
je ne comprend pas trop ta question. tu peux préciser? ou reformuler?
si Gollibit est sur la bonne voie (dans quel cas je comprend encore moins pourquoi tu parles de liste), alors un simple n = 18423^18424 suffit ;)
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
"Gobillot" pardon ^^
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
je pense qu'il doit prendre la combinaison 1 avec la 2, puis la 3, jusqu'à la 18424

puis avec la 2, il prend la 3, puis la 4, ect ...

jusqu'à la dernière possibilité 18423 avec la 18424



donc je trouve 169712676 = 18423 * 18424 / 2




Daniel
Messages postés
7
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2005

je veux regrouper les 18424 combinaisons de 3 numéros dans un minimum de combinaisons de 6 numéros.
sachant qu'avec une combinaison de 6 numeros (ex: 11-24-30-31-33-48)
je peux avoir 20 combinaisons de 3 numeros(11-24-30;11-24-31;etc...31-33-48).
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
désolé, je ne comprend toujours pas.
réduisons :
les numéros vont de 1 à 4 inclus
tu voudrais une liste avec :
1-2
1-3
1-4
2-3
2-4
3-4

et une autre liste avec :
1-2
1-3
1-4
2-1
2-3
2-4
3-1
3-2
3-4
4-1
4-2
4-3

c'est l'idée?
PCPT
Messages postés
7
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2005

ce n'est pas ce que je veux faire.
je veux regrouper les 18424 combinaisons de 3 numéros dans un minimum de combinaisons de 6 numéros.
sachant qu'avec une combinaison de 6 numeros (ex: 11-24-30-31-33-48)
je peux avoir 20 combinaisons de 3 numeros(11-24-30;11-24-31;etc...31-33-48).
Messages postés
7
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2005

je mets dans un objet list1 (de vb6) le resultat de la boucle suivante :
for i=1 to 47
for j=i+1 to 48
for k=j+1 to 49
list1.Additem i & j & k
next ,next,next
j'obtient donc les 18424 combis de 3 numeros.
je veux ensuite les regrouper dans un nombre (que je ne connais pas a l'avance) de combinaisons de 6 numeros.
En théorie on a 18424/20=921,2 combinaisons de 6 numéros or il me semble que l'on peux réduire de beaucoup ce nombre.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
salut'
est-ce que ce genre de suite te semble être le résultat à abtenir?


1 2 43 1 2 44


1 2 45 1 2 46


1 2 47 1 2 48


1 2 49 1 3 4


1 3 5 1 3 6


1 3 7 1 3 8


1 3 9 1 3 10


1 3 11 1 3 12


1 3 13 1 3 14
...

il y a 9212 lignes

en l'attente...
PCPT
Messages postés
7
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2005

salut
non car les chiffres sont identiques dans ton exemple 1 3 11 1 3 12 (deux fois 1 et deux fois 3) , 1 3 13 1 3 14 (deux fois 1 et deux fois 3) .


ce que je recherche c'est une suite de 6 chiffres non identique


a vrai dire je voudrais obtenir un de combinaison de 6 numeros (nombre le plus petit possible) me permettant de gagner a coup sur 3 numeros
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
comme dirait Coluche si t'as joué le 1 le 13 et le 1, t'as joué 2 fois le 1

le seul moyen de gagner à tous les coups, c'est de ne pas jouer


Daniel
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
j'me doutais bien que j'essaiyais de trouver inutilement...
si là est le seul but, il n'y a aucun intérêt à repasser par une suite à 6 chiffres, surtout que çà n'apportera rien comme "valeur sûre" pour trouver toujours 3bons numéros sur 6.

tiens, voici tes 11 suites telles que tu les veux alors....


2 48 49 3 4 5


6 48 49 7 8 9


10 48 49 11 12 13


14 48 49 15 16 17


18 48 49 19 20 21


22 48 49 23 24 25


26 48 49 27 28 29


30 48 49 31 32 33


34 48 49 35 36 37


38 48 49 39 40 41


42 48 49 43 44 45

et voici le test de boucle :

If (Tablo2(cpt2).C1 <> Tablo2(cpt2).C4 And Tablo2(cpt2).C1 <> Tablo2(cpt2).C5 And Tablo2(cpt2).C1 <> Tablo2(cpt2).C6) And _
(Tablo2(cpt2).C2 <> Tablo2(cpt2).C4 And Tablo2(cpt2).C2 <> Tablo2(cpt2).C5 And Tablo2(cpt2).C2 <> Tablo2(cpt2).C6) And _
(Tablo2(cpt2).C3 <> Tablo2(cpt2).C4 And Tablo2(cpt2).C3 <> Tablo2(cpt2).C5 And Tablo2(cpt2).C3 <> Tablo2(cpt2).C6) Then

...

bye

PCPT