GeeksforGeeks

Python oferă metode directe pentru a găsi permutări și combinații ale unei secvențe. Aceste metode sunt prezente în pachetul itertools.

Permutație

În primul rând importați pachetul itertools pentru a implementa metoda permutărilor în python. Această metodă primește ca intrare o listă și returnează un obiect listă de tupluri care conține toate permutările sub formă de listă.

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



Scoate:

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

Generează n! permutări dacă lungimea secvenței de intrare este n.

Dacă doriți să obțineți permutări de lungime L, atunci implementați-l în acest mod.

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



Ieșire:

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

Generează nCr * r! permutări dacă lungimea secvenței de intrare este n și parametrul de intrare este r.

Combinație

Această metodă ia ca intrare o listă și o intrare r și returnează un obiect listă de tuple care conține toate combinațiile posibile de lungime r sub formă de listă.

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



Scoate:

(1, 2)(1, 3)(2, 3)
  1. Combinațiile sunt emise în ordinea de sortare lexicografică a intrării. Astfel, dacă lista de intrare este sortată, tuplurile de combinații vor fi produse în ordine sortată.

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

    
    

    
    

    Scoate:

    (2, 1)(2, 3)(1, 3)
  2. Elementele sunt tratate ca fiind unice în funcție de poziția lor, nu de valoarea lor. Astfel, dacă elementele de intrare sunt unice, nu vor exista valori repetate în fiecare combinație.

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

    
    

    
    

    Scoate:

    (1, 1)(1, 3)(1, 3)
    (1, 1)(1, 3)(1, 3)
  3. Dacă vrem să facem combinații de același element cu același element, atunci folosim combinations_with_replacement.

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

    
    

    
    

    Scoatere:

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. Acest articol este realizat de Raju Varshney. Vă rugăm să scrieți comentarii dacă găsiți ceva incorect, sau dacă doriți să împărtășiți mai multe informații despre subiectul discutat mai sus

Etichete articol :
Etichete de practică :

Lasă un răspuns

Adresa ta de email nu va fi publicată.