Ņemot vērā masīvu ar izmēru n, ģenerējiet un izdrukājiet visas iespējamās r elementu kombinācijas masīvā. Piemēri:
Input : arr[] = [1, 2, 3, 4], r = 2 Output : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>
Ieteicams: lūdzu, izmēģiniet savu pieeju {iet} pirmkārt, pirms pāriet pie risinājuma.
Šai problēmai ir esošs rekursīvs risinājums, lūdzu, skatiet Drukāt visas iespējamās r elementu kombinācijas noteiktā masīvā ar n lielumu saiti. Mēs atrisināsim šo problēmu, izmantojot python itertools.combinations() modulis.
Ko dara itertools.combinations()?
Tas atgriež r garuma elementu apakšsecības no ievades iterējamās. Kombinācijas tiek izdalītas leksikogrāfiskā kārtošanas secībā. Tātad, ja ievades atkārtojums ir sakārtots, kombināciju korteži tiks izveidoti sakārtotā secībā.
rhel vs centos
- itertools.combinations(iterable, r) : tas atgriež r garuma korteņus sakārtotā secībā bez atkārtotiem elementiem. Piemēram, kombinācijas ('ABCD', 2) ==> [AB, AC, AD, BC, BD, CD]. itertools.combinations_with_replacement(iterable, r) : tas atgriež r garuma korteņus sakārtotā secībā ar atkārtotiem elementiem. Piemēram, kombinācijas_ar_replacement('ABCD', 2) ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
Python3
alfabēts pēc skaitļa
# 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))> |
>
>
java atlases kārtošanaIzvade
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>