Étant donné un tableau de taille n, générez et imprimez toutes les combinaisons possibles de r éléments dans le tableau. Exemples:
Input : arr[] = [1, 2, 3, 4], r = 2 Output : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>
Recommandé : veuillez essayer votre approche sur {va} d'abord, avant de passer à la solution.
Ce problème a une solution récursive existante, veuillez vous référer à Imprimer toutes les combinaisons possibles d'éléments r dans un tableau donné de lien de taille n. Nous allons résoudre ce problème en python en utilisant itertools.combinations() module.
Que fait itertools.combinations() ?
Il renvoie des sous-séquences de longueur r d'éléments de l'itérable d'entrée. Les combinaisons sont émises dans un ordre de tri lexicographique. Ainsi, si l'itérable d'entrée est trié, les tuples de combinaison seront produits dans l'ordre trié.
- itertools.combinations(iterable, r) : il renvoie des tuples de longueur r dans un ordre trié sans éléments répétés. Par exemple, combinaisons('ABCD', 2) ==> [AB, AC, AD, BC, BD, CD]. itertools.combinations_with_replacement(iterable, r) : il renvoie des tuples de longueur r dans un ordre trié avec des éléments répétés. Par exemple, combinaisons_with_replacement('ABCD', 2) ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
Python3
# Function which returns subset or r length from n> from> itertools>import> combinations> def> rSubset(arr, r):> ># return list of all subsets of length r> ># to deal with duplicate subsets use> ># set(list(combinations(arr, r)))> >return> list>(combinations(arr, r))> # Driver Function> if> __name__>=>=> '__main__'>:> >arr>=> [>1>,>2>,>3>,>4>]> >r>=> 2> >print> (rSubset(arr, r))> |
>
instanciation de Java
>Sortir
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>