GeeksforGeeks

Python zapewnia bezpośrednie metody znajdowania permutacji i kombinacji sekwencji. Metody te są obecne w pakiecie itertools.

Permutacja

Najpierw zaimportuj pakiet itertools, aby zaimplementować metodę permutacji w pythonie. Ta metoda przyjmuje listę jako dane wejściowe i zwraca listę obiektów tuples, które zawierają wszystkie permutacje w formie listy.

from itertools import permutations
perm = permutations()
for i in list(perm):
print (i)



Wykonawca:

(1, 2, 3)(1, 3, 2)(2, 1, 3)(2, 3, 1)(3, 1, 2)(3, 2, 1)

Generuje n! permutacji, jeśli długość sekwencji wejściowej wynosi n.

Jeśli chcesz uzyskać permutacje o długości L to zaimplementuj to w ten sposób.

from itertools import permutations
perm = permutations(, 2)
for i in list(perm):
print (i)



Wykonawca:

(1, 2)(1, 3)(2, 1)(2, 3)(3, 1)(3, 2)

Generuje nCr * r! permutacji, jeśli długość sekwencji wejściowej wynosi n, a parametrem wejściowym jest r.

Kombinacja

Metoda ta przyjmuje listę oraz dane wejściowe r jako dane wejściowe i zwraca obiektową listę tuple, która zawiera wszystkie możliwe kombinacje o długości r w postaci listy.

from itertools import combinations
comb = combinations(, 2)
for i in list(comb):
print (i)



Wyjście:

(1, 2)(1, 3)(2, 3)
  1. Kombinacje są emitowane w kolejności sortowania leksykograficznego danych wejściowych. Tak więc, jeśli lista wejściowa jest posortowana, tuple kombinacji będą produkowane w posortowanej kolejności.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Wyjście:

    (2, 1)(2, 3)(1, 3)
  2. Elementy są traktowane jako unikalne na podstawie ich pozycji, a nie na podstawie ich wartości. Więc jeśli elementy wejściowe są unikalne, nie będzie powtarzających się wartości w każdej kombinacji.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Wyjście:

    (1, 1)(1, 3)(1, 3)
  3. Jeśli chcemy zrobić kombinację tego samego elementu do tego samego elementu to używamy kombinacji_z_zastąpieniem.

    from itertools import combinations_with_replacement
    comb = combinations_with_replacement(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Wyjście:

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. This article is contributed by Raju Varshney. Proszę pisać komentarze, jeśli znajdziesz coś niepoprawnego, lub chcesz podzielić się więcej informacji na temat tematu omówionego powyżej

Tagi artykułu :
Praktyka Tagi :

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.