GeeksforGeeks

Python biedt directe methodes om permutaties en combinaties van een sequentie te vinden. Deze methoden zijn aanwezig in het pakket itertools.

Permutatie

Eerst importeer je het pakket itertools om de permutatiemethode in python te implementeren. Deze methode neemt een lijst als invoer en retourneert een objectlijst van tupels die alle permutaties in een lijstvorm bevatten.

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


Output:

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

Het genereert n! permutaties als de lengte van de invoerreeks n is.

Als je permutaties van lengte L wilt krijgen, implementeer je het op deze manier.

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

>


Output:

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

Het genereert nCr * r! permutaties als lengte van invoerreeks n is en invoerparameter r is.

Combinatie

Deze methode neemt een lijst en een invoer r als invoer en geeft een objectlijst van tupels terug die alle mogelijke combinaties van lengte r in een lijstvorm bevatten.

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

>


Output:

(1, 2)(1, 3)(2, 3)
  1. Combinaties worden uitgezonden in lexicografische sorteervolgorde van de invoer. Dus als de invoerlijst gesorteerd is, worden de combinatietupels in gesorteerde volgorde geproduceerd.

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

    >

    
    

    Output:

    (2, 1)(2, 3)(1, 3)
  2. Elementen worden als uniek behandeld op basis van hun positie, niet op basis van hun waarde. Dus als de invoerelementen uniek zijn, zullen de waarden in elke combinatie niet worden herhaald.

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

    >

    
    

    Output:

    (1, 1)(1, 3)(1, 3)
  3. Als we een combinatie willen maken van hetzelfde element naar hetzelfde element dan gebruiken we combinaties_met_vervanging.

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

    >

    
    

    Output:

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

    Dit artikel is geschreven door Raju Varshney. Schrijf commentaar als u iets onjuist vindt, of u wilt meer informatie over het onderwerp hierboven besproken

    Artikel Tags :
    Praktijk Tags :

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.