GeeksforGeeks

Python nabízí přímé metody pro hledání permutací a kombinací posloupnosti. Tyto metody se nacházejí v balíčku itertools.

Permutace

Nejprve importujte balíček itertools, abyste mohli implementovat metodu permutací v Pythonu. Tato metoda přijímá jako vstup seznam a vrací objektový seznam tuplů, které obsahují všechny permutace ve formě seznamu.

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



Výstup:

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

Generuje n! permutací, pokud je délka vstupní posloupnosti n.

Pokud chcete získat permutace délky L, pak to implementujte tímto způsobem.

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



Výstup:

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

Vygeneruje nCr * r! permutací, pokud je délka vstupní posloupnosti n a vstupní parametr je r.

Kombinace

Tato metoda bere jako vstup seznam a vstup r a vrací objektový seznam tuplů, který obsahuje všechny možné kombinace délky r ve formě seznamu.

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



Výstup:

(1, 2)(1, 3)(2, 3)
  1. Kombinace jsou emitovány v lexikografickém řazení podle vstupu. Pokud je tedy vstupní seznam setříděný, budou kombinační tuply vytvořeny v setříděném pořadí.

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

    
    

    
    

    Výstup:

    (2, 1)(2, 3)(1, 3)
  2. Elementy jsou považovány za jedinečné na základě své pozice, nikoliv na základě své hodnoty. Pokud jsou tedy vstupní prvky jedinečné, nebudou se hodnoty v jednotlivých kombinacích opakovat.

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

    
    

    
    

    Výstup:

    (1, 1)(1, 3)(1, 3)
  3. Pokud chceme provést kombinaci stejného prvku se stejným prvkem, pak použijeme kombinace_s_záměnou.

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

    
    

    
    

    Výstup:

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. Na tomto článku se podílel Raju Varshney. Napište prosím do komentářů, pokud najdete něco nesprávného, nebo se chcete podělit o další informace k výše diskutovanému tématu

Article Tags :
Štítky pro praxi :

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.