Bonjour,
Combien y a t'il de combinaison de prendre dans un tableau de 200 ; 5 groupes de variables différentes ?
Et comment structurer la boucle ?
Merci,
Christophe
Bonjour,
Combien y a t'il de combinaison de prendre dans un tableau de 200 ; 5 groupes de variables différentes ?
Et comment structurer la boucle ?
Merci,
Christophe
Bonsoir,
Peux-tu préciser ?
tableau de 200 lignes ? colonnes ?
5 groupes de combien de variables ?
Bonsoir,
C'est un tableau 1D de 200 valeurs, je cherche le nombre de groupe total de 5 valeurs différentes à la fois.
A B C D E F G H I J K L M N O P ...
Exemple de groupe : B E G J K
Merci
Tu veux 2 choses. Tu veux connaitre le nombre de combinaisons ta définition n'est pas claire, mais à priori, la formule doit être 200! / 120^^40 / 40! , c'est à dire 6E243
Et aussi tu veux construire une boucle pour recenser toutes ces combinaisons ???? Bon courage, il va falloir investir dans un gros ordinateur.
Bonjour,
Regarde les cours d'arrangements mathématiques.
Combinaison de p objets parmi n : Apn = n! / (p!*(n-p)!)
Bonjour.
La question initiale est double : mathématique puis algorithmique.
La question mathématique est : combien y a-t-il de manières de choisir 5 éléments différents parmi 200 ?
C'est une question classique concernant les combinaisons.
Comme l'a dit Pascaltech, la réponse générale ( pour p éléments choisis parmi n ) est n!/(p!*(n-p)!).
Ici p = 5 et n = 200.
Il y a donc 200*199*198*197*196/(5*4*3*2*1) = 2 535 650 040 combinaisons.
La question algorithme est : comment afficher ces combinaisons ?
Pour cela examinons la manière naturelle de faire les choix successifs :
on choisit un premier élément parmi les 200, pour un deuxième parmi les 199 restants, puis un troisième parmi les 198 restants, etc ...
A l'arrivée, on aura toutes les possibilités, mais chacune sera répétée 5! fois car il y a 5! manières de permuter 5 éléments.
Pour n'obtenir qu'un seul exemplaire de chaque combinaison, il suffit d'ordonner l'ensemble de départ et de choisir les 5 éléments dans l'ordre croissant.
Voici une procédure en Python qui effectue ce travail pour n = 6 et p = 3.
Il y a 6*5*4/(3*2*1) = 20 combinaisons.
Code de la procédure :
et le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 EE=['A','B','C','D','E','F'] for i in range(0,4): for j in range(i+1,5): for k in range(j+1,6): print(EE[i],EE[j],EE[k])
Se pose tout de même le problème pratique pour n = 200 et p = 5.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 A B C A B D A B E A B F A C D A C E A C F A D E A D F A E F B C D B C E B C F B D E B D F B E F C D E C D F C E F D E F
Afficher les 2 535 650 040 combinaisons ne semble pas très utile.
Quant à les sauvegarder sur disque, cela nécessite un fichier de plusieurs giga octets.
Est-ce bien raisonnable ?
J'avais compris la question : J'ai 200 objets que je veux répartir en 40 groupes de 5 ; et on veut connaitre toutes les façons possibles de faire ces 40 groupes de 5... Donc j'arrivais à beaucoup plus de solutions.
Mais Prof et Pascaltech ont probablement mieux compris la question que moi.
Effectivement, la question initiale n'était pas bien claire ...
Non, je pense que tu as raison tbc92 : "je cherche le nombre de groupe total de 5 valeurs différentes à la fois."
C'est le "à la fois" qui te donne raison.
Partager