Generer toutes les combinaisons du loto

739exemple.zip (8.25 Ko)

Bonjour à tous, je cherche une méthode sous excel permettant de génerer toutes les combinaisons sous la forme 5 colonnes correspondant aux 5 boules ( 5 sur 49) sur 381377 lignes.

En faite je cherche un résultats ayant la même forme que mon exemple.

Un début de réponse

Voici toutes les combinaisons ... il faut maintenant appliquer les permutations de chaque combinaison ! soit par recopie soit par macro pour compléter la liste

2'323loto.xlsx (33.64 Ko)

Fais un fichier et mets cette macro basique (programmation d'écolier !)

Sub loto()
l = 1
For a = 1 To 49
For b = 1 To 49
For c = 1 To 49
For d = 1 To 49
For e = 1 To 49
If (a <> b) And (a <> c) And (a <> d) And (a <> e) Then
If (b <> c) And (b <> d) And (b <> e) Then
If (c <> d) And (c <> e) Then
If (d <> e) Then
Cells(l, 1) = a
Cells(l, 2) = b
Cells(l, 3) = c
Cells(l, 4) = d
Cells(l, 5) = e
cells(1, 9) = l
Cells(1, 10) = a & "-" & b & "-" & c & "-" & d & "-" & e
l = l + 1
End If
End If
End If
End If
Next
Next
Next
Next
Next
End Sub

attend quelques minutes selon la puissance de ta machine !


chute a écrit :

Bonjour à tous, je cherche une méthode sous excel permettant de génerer toutes les combinaisons sous la forme 5 colonnes correspondant aux 5 boules ( 5 sur 49) sur 381377 lignes.

Je dois me planter car j'ai l'impression que cela ne tient pas sur un fichier excel à 1 million de lignes et des brouettes ! tu es sûr de tes 381377 lignes ? y a pas d'oubli ?

Je trouve 49! / (49-5)! = 228 826 080 arrangements

et même des combinaisons : 1 906 884

ok, merci j'essai ça. Désolé de poser une question qui pourrait semblé simple à beaucoup, mais j'ai jamais appris le vba à l'école.

Tu as un cas simple, avec des boucles for ... next, et des condition if ... then ... endif !

a, b, c, d, e sont les valeurs des 5 boules, de 1 à 49

l est la ligne

cells(i,j) désigne la cellule à remplir, ligne i colonne j

oui effectivement il doit y avoir 1 906 884 lignes


mon systeme bug, je crois que j'ai pas assez de mémoire.

surtout pas assez de lignes et de patience ...

il faudrait pouvoir continuer sur une nouvelles feuille

Bonsoir,

en effet il n'y a pas assez de ligne car il y a plus de 16 000 000 de combinaison.

la formule étant :

[49*48*47*46*45/(5*4*3*2*1)] * 10/1 = un peu plus de 19 000 000 de combinaisons.... ici j'ai pris le numéro chance en plus

D'ailleurs, c'était une grosse "arnaque" à l'époque : "Nouveau loto, plus de chance de gagner un chiffre de moins dans la série de 1 à 49 plus seulement une boule de 1 à 10"

on croit vraiment au premier abord qu'on gagne en combinaison mais non il y en a près de 6 000 000 de plus !!!!

Bravo la FDJ !!!! Ceci dit elle n'a pas tout à fait tort car on peut gagner avec seulement le numéro chance, c'est à dire une chance sur 10...

@ bientôt

LouReeD

j'ai commencé avec ce code qui fonctionne trés bien sauf qu'une cellule = une combinaison

qu'elle différence y a t il avec l'autre ?

Sub combinaisons()

lin = 1

col = 1

For m = 1 To 49

For n = m + 1 To 49

For o = n + 1 To 49

For p = o + 1 To 49

For q = p + 1 To 49

Cells(lin, col) = m & " " & n & " " & " " & o & " " & p & " " & q

lin = lin + 1

If lin > 65536 Then

col = col + 1

lin = 1

End If

Next q

Next p

Next o

Next n

Next m

End Sub

J'avais ceci

cells(1, 9) = l
Cells(1, 10) = a & "-" & b & "-" & c & "-" & d & "-" & e

juste pour suivre la progression ... tu peux les enlever.

Bravo, continue à dépatouiller ton code, c'est comme cela que l'on apprend.

Tu as choisi de tout mettre dans la même cellule, pourquoi pas !

ça ne m'arrange pas de tous mettre dans la même cellule en particulier pour traiter le tableau. Je cherche à faire un mix des deux codes. Sachant que le premier repond à la présentation que je recherche mais il est trop lours à génerer et comprend des doublons.

Le deuxiéme code correspond au résultats mais pas à la présentation.

Je cherche à générer toutes les combinaisons du loto ( 5/49) mais avec deux autres contraintes en plus de la présentation un numero par cellule soit cinq cellule pour une combinaison.

1° Je cherche à faire apparaitre uniquement les combinaisons composés de trois nombres impaires et de deux paires.

2° je ne veux pas faire apparaitre les combinaisons ou les cinqs nombres se suivent ( ex: 1,2,3,4,5) même si ceci respect la contrainte 1

Est possible de generer des paramétrres comme ça sous VBA

Sub loto()
lig = 1
col = 2
cmp = 1
For a = 1 To 49
For b = 1 To 49
For c = 1 To 49
For d = 1 To 49
For e = 1 To 49
If (a <> b) And (a <> c) And (a <> d) And (a <> e) Then
If (b <> c) And (b <> d) And (b <> e) Then
If (c <> d) And (c <> e) Then
If (d <> e) Then
If Not ((a = b - 1) And (b = c - 1) And (c = d - 1) And (d = e - 1)) Then
If ((a Mod 2) + (b Mod 2) + (c Mod 2) + (d Mod 2) + (e Mod 2)) = 3 Then
Cells(lig, 1 + col) = a
Cells(lig, 2 + col) = b
Cells(lig, 3 + col) = c
Cells(lig, 4 + col) = d
Cells(lig, 5 + col) = e
lig = lig + 1
cpt = cpt + 1
Cells(1, 1) = cpt
If lig = 200000 Then
lig = 1
col = col + 6
End If
End If
End If
End If
End If
End If
End If
Next
Next
Next
Next
Next
End Sub

701loto.xlsm (13.98 Ko)

Super merci

Encore merci pour la dernière réponse. IL me reste juste un souci, comment éviter les répétitions de nombres entre plusieurs lignes.

par exemple: le tirage 1 3 2 5 10 et le même que 1 3 2 10 5.

Sur le loto les contraintes imposés devrait faire passé le nombre de combinaison en dessous des 1 906 884, hors là, je suis à plus de 20 millions de possibilités.

ah ! je pensais que l'ordre était important !! comme au tiercé ...

donc ok, je vais reprendre le sujet ...

il suffit certainement de faire

for b = a+1 to 49 ... au lieu de for b = 1 to 49

for c = b+1 to 49

for d = c+1 to 49

for e = d+1 to 49

essaie avec cette modif

je suis curieux de savoir ce que tu vas en faire, dans tous les cas je veux bien partager les gains !!

du coup, je n'en ai trouvé "que" 634777 !

cela tient donc en une colonne

Sub loto()
lig = 1
col = 2
cmp = 1
Cells(2, 1) = Now
For a = 1 To 49
For b = a + 1 To 49
For c = b + 1 To 49
For d = c + 1 To 49
For e = d + 1 To 49
If Not ((a = b - 1) And (b = c - 1) And (c = d - 1) And (d = e - 1)) Then
If ((a Mod 2) + (b Mod 2) + (c Mod 2) + (d Mod 2) + (e Mod 2)) = 3 Then
Cells(lig, 1 + col) = a
Cells(lig, 2 + col) = b
Cells(lig, 3 + col) = c
Cells(lig, 4 + col) = d
Cells(lig, 5 + col) = e
lig = lig + 1
cpt = cpt + 1
Cells(1, 1) = cpt
End If
End If
Next
Next
Next
Next
Next
Cells(3, 1) = Now
End Sub

Super ça fonctionne. J'arrive à 634777 possibilités. A priori pour le moment j'au environ une chance sur deux que la bonne combinaison soit dans cette liste. Reste encore à réduire par d'autre croisement statistique.

En tout cas merci, si j'arrive à quelques choses de conséquent je penserai à toi !!!!

Rechercher des sujets similaires à "generer toutes combinaisons loto"