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...
En gros c'est simple. 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).
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 coupes on peut avoir un résultats 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 :
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
