Gitt en matrise med størrelse n, generer og skriv ut alle mulige kombinasjoner av r-elementer i matrise. Eksempler:
Input : arr[] = [1, 2, 3, 4], r = 2 Output : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>
Anbefalt: Prøv tilnærmingen din {går} først, før du går videre til løsningen.
Dette problemet har en eksisterende rekursiv løsning, se Skriv ut alle mulige kombinasjoner av r-elementer i en gitt matrise med størrelse n-lenke. Vi vil løse dette problemet i python ved hjelp av itertools.combinations() modul.
Hva gjør itertools.combinations()?
Den returnerer r lengde undersekvenser av elementer fra inndata iterable. Kombinasjoner sendes ut i leksikografisk sorteringsrekkefølge. Så hvis den iterable input er sortert, vil kombinasjonstuplene bli produsert i sortert rekkefølge.
- itertools.combinations(iterable, r): Den returnerer tupler med r-lengde i sortert rekkefølge uten gjentatte elementer. For eksempel, kombinasjoner(‘ABCD’, 2) ==> [AB, AC, AD, BC, BD, CD]. itertools.combinations_with_replacement(iterable, r) : Den returnerer tupler med r-lengde i sortert rekkefølge med gjentatte elementer. For eksempel, kombinasjoner_med_erstatning('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))> |
>
>Produksjon
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>