GeeksforGeeks

A Python közvetlen módszereket kínál egy sorozat permutációinak és kombinációinak megtalálására. Ezek a módszerek az itertools csomagban vannak jelen.

Permutáció

A permutációs módszer pythoni implementálásához először importáljuk az itertools csomagot. Ez a metódus bemenetként egy listát fogad, és visszaad egy objektumlistát, amely az összes permutációt lista formájában tartalmazza.

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



Kimenet:

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

Ez n! permutációt generál, ha a bemeneti sorozat hossza n.

Ha L hosszúságú permutációkat akarunk kapni, akkor így valósítsuk meg.

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



Kimenet:

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

Ez nCr * r! permutációkat generál, ha a bemeneti sorozat hossza n és a bemeneti paraméter r.

Kombináció

Ez a módszer egy listát és egy r bemenetet fogad el bemenetként, és visszaad egy objektumlistát, amely az összes lehetséges r hosszúságú kombinációt tartalmazza listaszerűen.

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



Kimenet:

(1, 2)(1, 3)(2, 3)
  1. A kombinációkat a bemenet lexikográfiai sorrendjében adjuk ki. Tehát ha a bemeneti lista rendezett, akkor a kombinációs tuplik is rendezett sorrendben fognak keletkezni.

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

    
    

    
    

    Kimenet:

    (2, 1)(2, 3)(1, 3)
  2. Az elemeket a pozíciójuk, nem pedig az értékük alapján tekintjük egyedinek. Tehát ha a bemeneti elemek egyediek, akkor nem lesznek ismétlődő értékek az egyes kombinációkban.

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

    
    

    
    

    Kimenet:

    (1, 1)(1, 3)(1, 3)
  3. Ha azonos elemet szeretnénk azonos elemmel kombinálni, akkor a combinations_with_replacement-t használjuk.

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

    
    

    
    

    Kimenet:

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. A cikk szerzője Raju Varshney. Kérjük, írjon megjegyzéseket, ha bármi hibát talál, vagy további információkat szeretne megosztani a fent tárgyalt témával kapcsolatban

Cikk címkék :
Gyakorlat Címkék :

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.