Générer les K combinaisons dépendantes de plusieurs variables et règles

Bonjour,

Je fais suite au sujet résolu que j'avais lancé sur un ancien forum : https://forum.excel-pratique.com/excel/generer-un-tableau-de-k-n-combinaisons-lequel-est-ensuite-fil...

L'idée est désormais de créer un générateur de K combinaisons générales.

Une combinaison K est composée de plusieurs sous-combinaisons Qi

Une combinaison K s'écrit donc Q1|Q2|...|QN

Chaque sous-combinaison Qi s'écrit avec ni chiffres de 1 à ki et contient kini possibilités (lire : "k" indice i et "n" indice i). Celles-ci sont diminuées à cause des des règles R1 et R2 à appliquer, à savoir :

- R1 : Supprimer tous les chiffres situés à droite de ceux de ki , (donc, pas de suppression des ki s'ils sont situés en dernière position de Qi)

- R2 : Supprimer toutes les combinaisons redondantes restantes,

puis par une règle (R3) pour ordonner les résultats :

- R3 : Ordonner les résultats de manière à ce que ceux avec le chiffre final le plus élevé (ki) figurent en dernier

Je vous propose pour cela de voir l'exemple en pièce jointe (tiré du premier post) :

Ces exemples sont résolus avec l'algorithme de recherche fourni suite au sujet initial) et . traité pour une sous-combinaison Q avec k = 4 et n = 3. A noter que l'algorithme, contrairement à l'exemple peut traiter tout k et tout n entier.

Le sujet "générateur des Qi" a été résolu avec brio, et j'en remercie tous les contributeurs.

_____

L'idée est désormais de demander votre aide pour concevoir un programme permettant de saisir les données suivantes : k1, k2, k3, ... kN ainsi que n1, n2, n3, ... nN. En théorie, vu qu'on arrêterait N à 10, je pourrais saisir jusqu'à 20 valeurs (pouvant varier chacune de 1 à 10) : les 10 "k" et les 10 "n".

Attention, il faut que le programme se génère seulement sur les valeurs qu'on veut renseigner (pour certaines utilisations du programme, j'aurai peut être besoin que de monter jusqu'à l'ordre 3 (N=3) alors que pour d'autres je peux avoir besoin de monter à N=10 ...).

Rien n'interdit d'avoir des valeurs de k et n différentes (je peux très bien avoir k1 = 5, k2 = 7, k3 = 9, n1 = 1, n2 = 8, n3 = 5 ...)

De cette façon là, je pourrai en tirer toutes les combinaisons K composées des différents Qi avec pour rappel que Qi est défini en fonction de ki et de ni.

Limitations du programme : Excel étant composé de 1 048 576 lignes, nous nous limiterons à une génération de 1 048 576 combinaisons. Par conséquent le nombre de combinaisons K ne pourra pas dépasser cette valeur.

Je propose ainsi que le programme puisse générer toutes les combinaisons Q1|...|Q10, avec une limitation k = 10 , n = 10 pour tout N variant de 1 à 10 (par ailleurs toutes ces variables démarrent à 1 et finissent à 10) avec un message d'avertissement à l'utilisateur :"impossible de générer plus de 1 048 576 combinaisons" si celui-ci demande des valeurs k1, k2, k3, ... kN ainsi que n1, n2, n3, ... nN de telle manière que les 1 048 576 combinaisons totales sont dépassées.

Contrairement à l'exemple fourni dans le tableau plus bas, je propose que chaque nombre (de 1 à 10) et chaque signe " | " occupe une cellule.

Par ailleurs n1 sera fixé égal à 1.

Et je confirme que je serai vite limité car ça monte vite, mais ça me sera suffisant dans l'ensemble !


Un dernier exemple avant de vous remercier :

Par exemple, pour un algorithme s'arrêtant à N=3 et si k1 = 4 et n1 = 1 ; k2 = 4 et n2 = 3 et k3 = 4 et n3 = 3 est figuré ci-dessous (attention, les combinaisons ne sont pas dans l'ordre), on obtient le tableau en annexe.

En vous remerciant infiniment !

ANNEXE

Edit : l'exemple est fourni sous forme de fichier :

(et il n'y a que 3 ordres sur celui-ci : Q1|Q2|Q3 ; pour rappel, on souhaite aller jusqu'à Q10 inclus dans le programme)

Edit 2 : la combinaison des deux topics qui suivent (et des réponses associées) que j'ai créées en parallèle devrait permettre de construire cet ultime programme !

(J'ai préféré bien séparer les posts pour rendre les choses simples, et parce que chaque problème que j'ai posé est différent).

https://forum.excel-pratique.com/excel/generer-un-tableau-de-k-n-combinaisons-lequel-est-ensuite-fil...

https://forum.excel-pratique.com/excel/recopie-d-un-nombre-de-lignes-espacees-148953

Encore merci à vous.

20201114 144444

Pour résumer, l'application que je souhaite obtenir est celle qui permet de générer toutes les possibilités (tous les chemins possibles) d'un arbre pouvant aller à l'ordre 10 ;)

Et chaque ordre peut contenir plusieurs essais... (là sur le tableau c'est 1 essai pour l'ordre 1 ; 3 essais pour l'ordre 2 et pour l'ordre 3 j'ai représenté 3 essais pour la première branche sortante de l'ordre 2)

Rechercher des sujets similaires à "generer combinaisons dependantes variables regles"