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.
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
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.
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
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.
Bonjour,
Ton tableau 1D contient-il 200 valeurs différentes ou peuvent-elles être égale ?
Veux-tu diviser ce tableau en 40 groupes de 5 valeurs différentes ? déterminer combien de groupes de valeurs différentes tu peux faire ?
Ces données sont-elles fixes ou ne sont-ce que des exemples, pourrais-tu être amené à résoudre le même problème pour un tableau de 175 valeurs et des groupes de 8 valeurs ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager