Combinaisons possibles de 5 numeros de 1 à 50

Résolu/Fermé
PrivatD - Modifié le 22 août 2023 à 14:42
 PrivatD - 24 août 2023 à 12:41

Bonjour,

J'aimerais tester une idée qui me taraude depuis un certain temps.

Il s'agit du Euromillions, vous l'aurez deviné.

J'aimerais obtenir de l'aide pour lister sous excel toutes les combinaisons possibles de 5 numéros de 1 à 50.

Toute aide sera appréciée

A voir également:

5 réponses

Pierr10 Messages postés 12307 Date d'inscription mardi 13 février 2018 Statut Modérateur Dernière intervention 12 novembre 2024 5 137
12 août 2023 à 20:53

Bonjour,

C'est effectivement une combinaison au sens mathématique du terme.
Le nombre de ces combinaisons est (50*49*48*47*46)/(5*4*3*2), ce qui fait :
2 118 760 combinaisons possibles.

Il va falloir beaucoup de lignes dans votre tableau Excel !


1

Bonjour,

Tout d'abord, j'attire ton attention sur les limitations d'excel. Tu ne pourras donc pas le faire sur une seul colonne. Ensuite, un peu de lecture


1

Merci pour la réponse 

0
mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 7 803
Modifié le 25 août 2023 à 15:28

Bonjour,

La question que tout le monde peut naturellement se poser, c'est quel est l'intérêt de lister toutes les combinaisons. Par exemple, si le but est de stocker toutes les combinaisons qui ont déjà eu lieu, il est inutile de toutes les énumérer, seules celles qui ont eu lieu sont pertinentes.

En effet, du point de vue des mathématiques, ce n'est pas parce qu'une combinaison a déjà été réalisée qu'elle a plus ou moins de chance de se réaliser à l'avenir. On parle de tirages indépendants. En d'autres termes, maintenir de telles statistiques n'a pas de réel intérêt pratique.

Énumération

Si tu veux malgré tout énumérer toutes ces combinaisons, comme souligné par les nombreuses personnes qui sont déjà intervenues, Excel est assez inadapté pour manipuler de tels volumes de données. Un langage comme python serait bien plus pratique, comme le montre l'exemple ci-dessous.

from itertools import combinations
from pprint import pprint

k = 5   # Longueur des combinaisons
n = 50  # Valeur maximum des nombres impliqués dans les combinaisons

c = list(combinations(list(range(1, n + 1)), k))
print(len(c))  # Affiche le nombre de combinaisons
pprint(c[:10])  # Affiche les 10 premières combinaisons

Résultat :

2118760
[(1, 2, 3, 4, 5),
 (1, 2, 3, 4, 6),
 (1, 2, 3, 4, 7),
 (1, 2, 3, 4, 8),
 (1, 2, 3, 4, 9),
 (1, 2, 3, 4, 10),
 (1, 2, 3, 4, 11),
 (1, 2, 3, 4, 12),
 (1, 2, 3, 4, 13),
 (1, 2, 3, 4, 14)]

Dénombrement

Dans le cas de l'euro millions, le tirage est fait sans remise et on ne s'intéresse donc qu'aux combinaisons sans répétitions, dont le nombre est obtenu par cette formule (voir ici) :

K(n, k) = n! / (k! * (n - k)!)

avec :

  • ! est l'opérateur factorielle;
  • n = 50 (puisqu'on a le choix parmi 50 nombres distincts);
  • k = 5 (puisque chaque combinaison est composée de 5 nombres)

... ce qui donne bien le même résultat que ce que Pierr10 a calculé dans le message #1.

En python :

from math import factorial
 
def nc(n, k):
    return factorial(n) // (factorial(k) * factorial(n - k))

print(nc(50, 5))  # Affiche 2118760

... ou plus simplement :

from math import comb

print(comb(50, 5))

Bonne chance

1

Je vous remercie 

0

En effet oui. Mais maintenant comment lister cela! Telle est la question!

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
brucine Messages postés 17623 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 12 novembre 2024 2 567
Modifié le 22 août 2023 à 14:43

Bonjour,

La question n'a absolument aucun intérêt, comme le souligne Pierr10, on va planter Excel et son PC à vouloir générer et afficher cette liste qui de toute façon ne pourra pas être consultée aisément ni servir de base de données facilement exploitable pour un traitement numérique du fait de sa taille.

Elle serait plus "naturellement" traitée par un langage de programmation mais toujours dès lors que le résultat attendu est faible (ce qui, en matière de factorielles, reste assez théorique), on la trouve par exemple traitée ici en Python ou ici dans d'autres langages.

Si on tient vraiment à Excel, rien n'est plus indispensable que ce qui est inutile, il existe différentes approches en VBA comme ici ou sans comme .

0
yg_be Messages postés 23320 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 11 novembre 2024 1 552
Modifié le 14 août 2023 à 12:37

bonjour, puisqu'il faut trouver 5 nombres, il me semble beaucoup plus simple et plus rapide de travailler avec 5 boucles imbriquées.

Option Explicit

Private Sub cc()
Dim i1 As Integer, i2 As Integer, i3 As Integer, i4 As Integer, i5 As Integer
Dim c As Long, n As Integer
Dim r As Long, col As Integer
c = 0
n = 50
r = 2
col = 1
Debug.Print Now, n
For i1 = 1 To n
    For i2 = i1 + 1 To n
        For i3 = i2 + 1 To n
            For i4 = i3 + 1 To n
                For i5 = i4 + 1 To n
                    c = c + 1
                    Cells(r, col) = i1
                    Cells(r, col + 1) = i2
                    Cells(r, col + 2) = i3
                    Cells(r, col + 3) = i4
                    Cells(r, col + 4) = i5
                    col = col + 6
                    If col = 25 Then
                        col = 1
                        r = r + 1
                    End If
                Next i5
            Next i4
        Next i3
    Next i2
Next i1
Debug.Print Now, c
End Sub
1
jordane45 Messages postés 38284 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 novembre 2024 4 697 > yg_be Messages postés 23320 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 11 novembre 2024
14 août 2023 à 11:48

Bonjour Il faut penser qu'il faut trouver les combinaisons sans doublon. Et sans retirage. Par exemple : 1,2,3,4,5. Est pareil que 5,3,4,2,1

2
yg_be Messages postés 23320 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 11 novembre 2024 1 552 > jordane45 Messages postés 38284 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 novembre 2024
14 août 2023 à 12:42

Oui, heureusement, on n'est pas obligé d'utiliser des constantes comme bornes de boucle.

0
PrivatD > yg_be Messages postés 23320 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 11 novembre 2024
24 août 2023 à 12:35

Merci je prends note

1