OneManShow
Messages postés10Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention11 juillet 2004
-
25 juin 2004 à 17:04
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
25 juin 2004 à 18:01
J'ai trouvé un programme en C permettant de generer toutes les combinaisons possibles du loto Francais a 6 chiffres.
J'ai essayé de l'adapter a VB6 mais ca marche pas.
Si kelkun pourrait m'aider ce serait bienvenu
Voici le prog en C :
Nb_boules=49
printf("Debut du programme\nPatientez...\n\n");
for(i=1;i<=nb_boules-5;i++)
for(j=i+1;j<=nb_boules-4;j++)
for(k=j+1;k<=nb_boules-3;k++)
for(m=k+1;m<=nb_boules-2;m++)
for(n=m+1;n<=nb_boules-1;n++)
for(p=n+1;p<=nb_boules;p++)
fprintf(fichier,"%d %d %d %d %d %d\n",i,j,k,m,n,p); /* on ecrit les combinaisons dans le fichier */
fclose(fichier);
printf("Le programme a termine. Fin;)\n\n");
return 0;
voici le mien en VB
For i = 1 To 44
For j = (i + 1) To 45
For k = (j + 1) To 46
For m = (k + 1) To 47
For n = (m + 1) To 48
For p = (n + 1) To 49
p = p + 1
Print #1, i, j, k, m, n, p
Next
n = n + 1
Next
m = m + 1
Next
k = k + 1
Next
j = j + 1
Next
i = i + 1
Next
Close #1
MsgBox ("end prog")
End Sub
Je n'obtiens que 592000 combinaisons au lieu des 13 millions et quelques que je devrais obtenir :(
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 25 juin 2004 à 17:32
Forcément : tu incrémente i, j, k, etc. alors que tu n'en a pas besoin : VB le fait automatiquement dans ses boucles For.
Donc ca donne cà :
For i = 1 To 44
For j = (i + 1) To 45
For k = (j + 1) To 46
For m = (k + 1) To 47
For n = (m + 1) To 48
For p = (n + 1) To 49
p = p + 1
Print #1, i, j, k, m, n, p
Next
Next
Next
Next
Next
Next
Close #1
MsgBox ("end prog")
End Sub
Note, pour ce genre de calcul, il vaudrait mieux utilise un appel à une fonction, car autant de boucle for imbriquée, c'est pas très lisible !