J'ai un ArrayList
et je veux trouver toutes les combinaisons d'une taille donnée sans répétitions à l'intérieur avec une seule fonction (intégré ou non). Par exemple:Java fonction pour calculer permutations sans répétitions
ArrayList<Integer> numbers = Array.asList(96, 32, 65, 21);
getCombinationsWithoutRepeats(numbers, 2);
Sortie:
>>> [[96, 32], [96, 65], [96, 21], [32, 65], [32, 21], [65, 21]]
Comment puis-je créer cette fonction ou est-il une fonction intégrée qui fait cela?
En relation: [permutation de tableau] (http://stackoverflow.com/a/2920349/335858). – dasblinkenlight
Pouvons-nous supposer que le tableau d'entrée a seulement des éléments uniques (je suppose par "répétitions" que vous voulez dire dans la sortie)? Une solution très évidente consiste à générer d'abord toutes les combinaisons de taille 'n' (la façon la plus courante de le faire est de représenter l'ensemble avec un nombre' n'-bit que vous incrémentez à plusieurs reprises.À chaque fois, la représentation binaire du nombre vous dit quels éléments inclure/exclure dans/de la combinaison actuelle) puis permuter chacune des combinaisons (par exemple, la solution lexicographique populaire: http://en.wikipedia.org/wiki/Permutation#Generation_in_lexicographic_order). – rliu
Qu'avez-vous essayé? – Ayman