Python oferă metode directe pentru a găsi permutări și combinații ale unei secvențe. Aceste metode sunt prezente în pachetul itertools.
Î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.
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)
- 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ă.
fromitertoolsimportcombinationscomb=combinations(,2)foriinlist(comb):print(i)Scoate:
(2, 1)(2, 3)(1, 3)
- 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.
fromitertoolsimportcombinationscomb=combinations(,2)foriinlist(comb):print(i)Scoate:
(1, 1)(1, 3)(1, 3)
(1, 1)(1, 3)(1, 3)
- Dacă vrem să facem combinații de același element cu același element, atunci folosim combinations_with_replacement.
fromitertoolsimportcombinations_with_replacementcomb=combinations_with_replacement(,2)foriinlist(comb):print(i)Scoatere:
(1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3)
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ă :