[O365] Générer permutations et combinaisons via formules
Bonjour à tous,
Je vous partage une petite astuce que j'ai trouvée ici pour générer les permutations de k éléments parmis n, en utilisant la fonction BASE. C'est très utile quand on veut étudier les combinaisons de différents facteurs pour trouver un optimum par exemple.
Bon, de base le résultat n'est exploitable que pour des éléments entre 1 et 9 (minimum 2 valeurs à permuter, maximum 9 car sinon on dépasse les limites de la fonction MID). Mais c'est déjà pas mal !
Ci-joint un mini fichier pour comprendre, chaque étape de la formule est découpée dans des colonnes différentes. Les colonnes A:E reprennent l'article en anglais, et les colonnes suivantes sont des ajouts.
Attention, malgré le titre de l'article en Anglais on génère bien des permutations et non des combinaisons ({1,1,1,2} ≠ {2,1,1,1} ≠ {1,2,3,4}). Cependant on peut très facilement filtrer ces résultats pour en extraire les combinaisons. Je propose une implémentation simple dans le fichier joint mais il y a certainement des moyens plus efficaces, l'idée étant de rester didactique.
Bonne journée !
Bonjour à tous, une petite amélioration en utilisant CODE au lieu de VALEUR qui permet de traiter les caractères de l'alphabet pour l'encodage. Ainsi on peut utiliser toute l'étendue de la fonction BASE et donc augmenter la taille maximale de l'ensemble à 36 éléments (10 chiffres + 26 lettres).
La feuille "Code" mise à jour pour y correspondre, et un exemple d'utilisation en feuille "exemple" pour trouver dans une classe de 36 élèves, quel groupe de 3 élèves a obtenu une note totale (somme) la plus proche de l'objectif fixé (à 30).
Nota : on ne peut pas de cette manière traiter des groupes > 3 pour 36 éléments. On dépasse en effet le million de calculs (36^4), qui est une limite de manière générale pour les fonctions dynamiques.