GeeksforGeeks

Python fornece métodos directos para encontrar permutações e combinações de uma sequência. Estes métodos estão presentes no pacote itertools.

Permutação

Primeiro pacote itertools de importação para implementar o método de permutações em python. Este método toma uma lista como entrada e retorna uma lista de objetos de tuplos que contém todas as permutações em forma de lista.

from itertools import permutations
perm = permutations()

for i in list (perm):
> print (i)



Saída:

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

Gera n! permutações se o comprimento da sequência de entrada for n.

Se quiser obter permutações de comprimento L, implemente-o desta forma.

from itertools import permutations
perm = permutations(, >2)

for i in list(perm):
print (i)



Saída:

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

Gera permutações nCr * r! se o comprimento da sequência de entrada for n e o parâmetro de entrada for r.

Combinação

Este método toma uma lista e uma entrada r como entrada e retorna uma lista de objectos de tuplos que contêm todas as combinações possíveis de comprimento r numa forma de lista.

from itertools import combinations
comb = combinations(, 2)

for i in list(comb):
print (i)



Eliminar:

(1, 2)(1, 3)(2, 3)
  1. Combinações são emitidas em ordem lexicográfica de entrada. Assim, se a lista de entradas for ordenada, a combinação de tuplos será produzida em ordem de ordenação.

    from itertools import combinations
    comb = combinations(, 2)

    for i in list(comb):
    print (i)

    
    

    
    

    Eliminar:

    (2, 1)(2, 3)(1, 3)
  2. Elementos são tratados como únicos com base na sua posição, não no seu valor. Portanto, se os elementos de entrada forem únicos, não haverá valores de repetição em cada combinação.

    from itertools import combinations
    comb = combinations(, 2)

    for i in list(comb):
    print (i)

    
    

    
    

    Eliminar:

    (1, 1)(1, 3)(1, 3)
  3. Se quisermos fazer combinação do mesmo elemento para o mesmo elemento, então usamos combinações_com_substituição.

    from itertools import combinations_with_replacement
    comb = combinations_with_replacement(, 2)

    for i in list(comb):
    print (i)

    
    

    
    

    Eliminar:

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. Este artigo é contribuído por Raju Varshney. Por favor, escreva comentários se você encontrar algo incorreto, ou se você quiser compartilhar mais informações sobre o tópico discutido acima

Etiquetas de artigos :
Etiquetas de prática :

Deixe uma resposta

O seu endereço de email não será publicado.