Hello! Je cherche un logiciel pour réaliser de multiples combinaisons!

dylan-dog

Membre actif
9 Mai 2002
206
0
Visiter le site
Hello tout le monde! Je cherche un moyen pour réaliser de mutliples combinaions; avec des chiffres de 1 à 30 avec 5 numéros donnés et réaliser ainsi toutes les combinaisons possibles! je suis conscient de la valeur énorme que cela va donner mais j'en ai besoin. Si quelque'un peut m'aider et dire comment faire ou quel logiciel utiliser?
 
Ta question m'échappe un peu : si c'est juste pour avoir toutes les combinaisons de x chiffres, l'algorithme va faire 10 lignes et tu peux faire ça dans n'importe quel langage de l'assembleur au fortran en passant par java, c, etc.

Sinon, précise un peu.
 
C'est pour réaliser toutes les possibilités avec pour être plus exact:

- 45 numéros (de 1 à 45)
- avec une combinaison de 6 numéros; exemple: (1.12.25.34.44.45)
- Sans les répétitions donc chaque combinaison doit être unique
- Cela doit donner un peu plus de 8millions de possibilités.

Et je cherchais quelqu'un pour réaliser cela car je ne suis pas du tout programmeur; et en passant; il me fauderait un traitement de texte ultra-puissant pour gérer cela.

J'espère que vous m'apporteriez de l'aide.
 
En fait, tu veux générer toutes les combinaisons possibles pour la Loterie Suisse à numéro :-)

Faire un programme pour réaliser ça, c'est très simple. Mais par contre, les stocker dans un fichier texte, ça risque de prendre beaucoup de place, et ça sera certainement difficilement éditable par la suite.

Est-ce que tu peux nous dire plus précisément ce que tu comptes faire avec ces combinaisons.. ?
 
Oui c'est exactement pour réaliser ces grilles!
J'aimerais faire un cadeau pour mon père qui est un véritable fervent des jeux de hasard et il aura bientôt 70 ans et il dit qu'il va arrêter de jouer ses numéros fétiches et il m'a dit: "Si seulement j'avais la combinaison gagnante, je me rajeunirai" - Alors j'aimerais lui faire un petit cadeau du genre: "Tiens, voici toutes les formules, mais je te garantis pas laquelle est la bonne ;-)" ! Il va être mort de rire et comme c'est un mathématicien de haut niveau il va vouloir savoir si toutes les combinaisons sont bien présentes; donc 8 millions... :-)
Autrement, j'ai déjà un code qui calculé avec le terminal me donne des combinaisons mais elle se répètent! Et il me faut pas de doublon...
Voici le code:
main()
{
   int un;
   int deux;
   int trois;
   int quatre;
   int cinq;
   int six;
   int max = 45;
   for (un = 1; un <= max; ++un)
     for (deux = 1; deux <= max; ++deux)
       if (deux != un)
         for (trois = 1; trois <= max; ++trois)
           if (trois != deux && trois != un)
             for (quatre = 1; quatre <= max; ++quatre)
               if (quatre != trois && quatre != deux && quatre != un)
                 for (cinq = 1; cinq <= max; ++cinq)
                   if (cinq != quatre && cinq != trois && cinq != deux && cinq != un)
                     for (six = 1; six <= max; ++six)
                       if (six != cinq && six != quatre && six != trois && six != deux && six != un) {
                         printf("%2d %2d %2d %2d %2d %2d\n", un, deux, trois, quatre, cinq, six);
                       }
}
Et il me faudera quelqu'un qui puisse m'aider pour générer tout cela et sans doublons! Autrement, c'est vrai que ça va être un fichier énorme mais je pense pas que c'est dans le domaine de l'impossible! Avec un bon traitement de texte on doit pouvoir rendre ces numéros dans un traittement de texte banal.
 
Le nombre de combinaisons possibles sera de : C(45, 6) = 8'145'060

Si tu comptes que chaque caractère est stocké dans 1 octet, et qu'une ligne de ton fichier contiendra 6 nombre (de 1 ou 2 chiffres) c'est à dire 12 octets. Il faudra encore rajouter des délimiteurs, donc 5 délimiteurs entre les nombres d'une combinaisons. Et il faut aussi un délimiteur entre chaque combinaison. Donc pour chaque combinaison, il te faut 18 octets au maximum.

Donc, finalement : 8'145'060 x 18 octets = 146'611'080 octets = 139.8 Mo

Cette valeur est majorée par rapport à la place réelle que cela prendra, mais ça donne un ordre d'idée..
 
Voilà exactement c'est le bon calcul!

Reste maintenant à savoir comment réaliser la bonne programmation pour arriver à toutes ces combinaisons sans doublons? Un fichier texte de 140MB peut s'ouvrir! Donc j'ai besoni d'aide pour la programmation, y'aura-t-il quelqu'un pour m'aider? Dans le Code que j'ai donné toute-à-l'heure ou par un autre moyen?
 
Bon je me lance, je ne suis pas sûr que le résultat soit le bon mais je pense m'en rapprocher :

|------- Début du code -------|
int un,deux,trois,quatre,cinq,six;
int nb=0;
int max=45;

for (un=1; un<(max-5); un++)
for (deux=(un+1); deux<=(max-4); deux++)
for (trois=(deux+1); trois<=(max-3); trois++)
for (quatre=(trois+1); quatre<=(max-2); quatre++)
for (cinq=(quatre+1); cinq<=(max-1); cinq++)
for (six=(cinq+1); six<=(max); six++)
{
printf("%d - %d - %d - %d - %d - %d\n",un,deux,trois,quatre,cinq,six);
nb++;
}
//printf("%d",nb); // Décommenter la ligne pour avoir le nombre de résultats
laugh.gif
=> (8 145 059)
|------- Fin du code -------|

(les balises ne voulant pas fonctionner
tongue.gif
)

Donc voilà à prioris il manque une possibilité :-), puisque le nombre devrait être de 8 145 060.

PS : pour l'écriture dans un fichier c pas trop dur
smile.gif
, copier/coller du code dans un projet ProjectBuilder (ou XCode
wink.gif
) et ensuite il suffit de le lancer dans le terminal en rédirigeant la sortie standard dans un fichier
laugh.gif
(ex : ./gennum > soluces.txt)