Salut tous,
Je préviens je ne suis pas mathématicien et très loin de là . Je suppose que ce que je cherche à un nom, un algo. Si quelqu'un pouvait m'aider ça va probablement être très très simple pour vous... Imaginons un tableau de 12 colonnes (mais ça pourrait être une autre valeur paire).
Je voudrais utiliser ce tableau soit dans son ensemble (les 12 colonnes), le diviser en deux (6 colonnes + 6 colonnes = 12), en trois (4,4,4 = 12), en quatre (3,3,3,3 = 12) en cinq (2,3,2,3,2 = 12) ou en 6 (2,2,2,2,2,2 = 12) et ainsi de suite pour des tableaux plus large.
Maintenant ce que je veux c'est pour chaque "division" obtenir tous les possibilités. Exemple, si je veux le tableau diviser en deux... j'ai donc 6 colonnes + 6 regroupées comme je l'ai indiqué plus haut. Sauf qu'il existe plusieurs variantes :
122222222222 (1 colonne puis 11 colonnes regroupées = 12 colonnes au total)
112222222222 (2,10)
111222222222 (3,9)
111122222222 (4,8)
111112222222 (5,7)
111111222222 (6,6 l'exemple que j'avais donné)
111111122222 (7,5)
111111112222 (8,4)
111111111222 (9,3)
111111111122 (10,2)
111111111112 (11,1)
Si ça reste "simple" pour la version 2 colonnes en raison du décalage, pour la version 3 ça se complique car le nombre de possibilités augmentent... Par exemple avec 5 division on peut avoir un résultat du genre 112223333445 (2,3,4,2,1 = 12).
Donc en gros ce que je voudrais c'est définir la taille du tableau 6, 8, 10, 12 éléments, etc. Et ensuite pour un nombre de divisions donné exemple 3, obtenir un tableau (array) des variantes possibles en hexa (ce qui limiterait à 14 le nombre d'éléments maxi mais simplifierait le stockage et la lecture du résultat) ou dans des tableaux imbriqués (soit en décimal soit en hexa). Genre (en javascript langage qui me faudrait au final) :
var a = variantes(12, 2);
a vaudrait ['1b', '2a', '39', '48', '57', '66', '75', '84', '93', 'a2', 'b1'] en hexa ou autre possibilité
a vaudrait [[1,11],[2,10],[3,9 et ainsi de suite...
var a = variantes(12, 6);
a vaudrait ['222222'] ou
a vraudrait [[2],[2],[2],[2],[2],[2]]
Des idées ?
Merci
Jérôme
-----