Re : Etude du loto (Celle de l'Euromillion?)
Bonjour le fil, Fliptrick
Si j'ai bien compris, il faut sortir des tirages à la condition qu'aucun triplet ne soit sortit dans un tirage précédent.
Si tel est le cas, on peut faire une liste de 1 100 combinaisons (aucunes de ces combinaisons n'a 3 numéros en commun avec les autres).
Cependant, si le programme sort comme premier enreg : 1 - 2 - 3 - 4 - 5
- Alors le triplé 1 - 2 - 3 ne pourra plus sortir avec aucun autre n°
- Pourquoi ne pas faire : 1 - 2 - 3 - 22 - 40 ou 1 - 2 - 3 - 38 - 50 ?
- Il y a 1081 choix possibles "=combin(47;2)", (je te laisse imaginer le nombre de listes différentes)
C'est parce que je ne peut pas répondre à cette question, que je ne peux t'aider pour ton problème.
En PJ une petite macro, qui t'aidera peut-être à m'aider ... à t'aider.
A plus
saberia converter esse codigo para vba
/* Ce programme couvre les tous les triplets.
Ce n'est pas l'optimum qui est trouve.
Pour generer tous les triplets sur 16 boules il faut changer la
valeur de la variable LIM6
Sont utilite est essentiellement pour construire des jeux reduits
*/
#include <stdio.h>
#include <string.h>
#ifndef LIM6
#define LIM6 31
#endif
#define PRIVATE static
#define PROC void
#define ROLL(a0,a1,a2,a3,a4,a5,a6,l) for (a6=6 ; a6 < l ; a6++)\
for (a5=5 ; a5 < a6 ; a5++)\
for (a4=4 ; a4 < a5 ; a4++)\
for (a3=3 ; a3 < a4 ; a3++) \
for (a2=2 ; a2 < a3 ; a2++) \
for (a1=1 ; a1 < a2 ; a1++) \
for (a0=0 ; a0 < a1 ; a0++)
#define ROLL3(a0,a1,a2,a3,a4,l) for (a4=4 ; a4 < l ; a4++) \
for (a3=3 ; a3 < a4 ; a3++) \
for (a2=2 ; a2 < a3 ; a2++) \
for (a1=1 ; a1 < a2 ; a1++) \
for (a0=0 ; a0 < a1 ; a0++)
PRIVATE long TT3[LIM6][LIM6][LIM6][LIM6][LIM6];
PRIVATE int UNSETED(b)
int b[] ;
{
register int i,j,k,m,n ;
int r = 0 ;
ROLL3(i,j,k,m,n, 7) {
r += (TT3[b
][b[j]][b[k]][b[m]][b[n]] == 0) ;
}
return r ;
}
PRIVATE PROC SET(b)
int b[] ;
{
register int i,j,k,m,n ;
ROLL3(i,j,k,m,n, 7) {
TT3[b][b[j]][b[k]][b[m]][b[n]] = 1 ;
}
}
PRIVATE int b[12] = {0,1,2,3,4,5,6,7,8,9,10,11} ;
main (argc, argv )
int argc ;
char *argv[] ;
{
system("color 1F");
FILE *esp;
esp=fopen("/COVER_TESTE/Default Profile/especial1.txt", "w");
int t, bc ,i;
int cnt = 0 ;
memset (TT3, 0, sizeof(TT3)) ;
t = UNSETED(b) ;
while (t > 0) {
// fprintf(stderr,"We are at : %d\n",t) ;
ROLL(b[0],b[1],b[2],b[3],b[4],b[5],b[6], LIM6) {
bc = UNSETED(b) ;
if (bc == t) {
SET(b) ;
cnt++ ;
fprintf(esp,"%02d %02d %02d %02d %02d %02d %02d\n",b[0]+1,b[1]+1,b[2]+1,b[3]+1,b[4]+1,b[5]+1,b[6]+1);
printf ("%4d = (%02d %02d %02d %02d %02d %02d %02d)\n", cnt,
b[0]+1, b[1]+1, b[2]+1, b[3]+1, b[4]+1,b[5]+1,b[6]+1) ;
}
}
t-- ;
}
}