Glede na matriko velikosti n ustvarite in natisnite vse možne kombinacije r elementov v matriki. Primeri:
Input : arr[] = [1, 2, 3, 4], r = 2 Output : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>
Priporočljivo: poskusite svoj pristop {gre} najprej, preden preidete na rešitev.
Ta problem ima obstoječo rekurzivno rešitev, glejte povezavo Natisni vse možne kombinacije r elementov v danem nizu velikosti n. To težavo bomo rešili v pythonu itertools.combinations() modul.
Kaj počne itertools.combinations()?
Vrne podzaporedja elementov dolžine r iz vhodnega iterabla. Kombinacije so oddane v leksikografskem vrstnem redu. Torej, če je vhodni iterabilni sortiran, bodo kombinirane tuple izdelane v razvrščenem vrstnem redu.
gimp odstrani vodni žig
- itertools.combinations(iterable, r) : Vrne tuple dolžine r v razvrščenem vrstnem redu brez ponovljenih elementov. Na primer, kombinacije ('ABCD', 2) ==> [AB, AC, AD, BC, BD, CD]. itertools.combinations_with_replacement(iterable, r) : vrne tuple r-dolžine v razvrščenem vrstnem redu s ponavljajočimi se elementi. Na primer, kombinacije_z_zamenjavo('ABCD', 2) ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
Python3
markdown slike
# 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))> |
>
>
format java nizIzhod
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>