logo

Permutação e combinação em Python

Neste tutorial, aprenderemos como obter a permutação e combinação de determinados dados usando Python. Usaremos o pacote embutido do Python para encontrar a permutação e combinação de um determinado número.

Permutação e combinação são uma parte essencial da matemática. Pitão fornece a biblioteca itertools que possui funções integradas para calcular permutação e combinação.

Importando a biblioteca necessária

Para calcular a permutação e combinação, precisamos importar a biblioteca itertools. Podemos importá-lo usando o comando abaixo.

 import itertools 

A instrução acima importará a biblioteca itertools e formará um caminho para sua função.

Agora, precisamos criar a lista de uma sequência como entrada. Esta lista de entradas retornará a tupla que consiste em permutação e combinação. Também podemos definir a duração da permutação e combinação.

Permutação

Uma permutação é um arranjo de um conjunto onde a ordem importa. O módulo Python itertools fornece embutido permutação() método para encontrar a permutação. Vamos entender o exemplo a seguir.

Exemplo -

 from itertools import permutations seq = permutations(['1','2','3']) print(seq) for p in list(seq): print(p) 

Saída:

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

No código acima, importamos o módulo itertools. Chamamos o permutação() método que recebe string como argumento e fornece um objeto itertools. É necessário usar o loop for para obter cada permutação.

Vamos pegar dois conjuntos de permutações.

Exemplo - 2

 from itertools import permutations seq = permutations(['A','B']) for p in list(seq): print(p) 

Saída:

 ('A', 'B') ('A', 'C') ('B', 'C') 

Exemplo - 3

 from itertools import permutations list1 = [1, 2, 3, 4] seq = permutations(list1) print(seq) for p in list(seq): print(p) 

Saída:

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

No código acima, obtivemos a combinação do número inteiro múltiplo.

Permutação do comprimento fixo

Podemos calcular a permutação do conjunto de comprimento fixo onde pegamos apenas um número especificado de cada permutação de elemento. Vamos entender o exemplo a seguir.

Exemplo -

 from itertools import permutations seq = permutations(['H', 'e', 'l', 'l', 'o'], 3) for p in list(seq): print(p) 

Saída:

 ('H', 'e') ('H', 'l') ('H', 'l') ('H', 'o') ('e', 'H') ('e', 'l') ('e', 'l') ('e', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('o', 'H') ('o', 'e') ('o', 'l') ('o', 'l') 

No código acima, calculamos a permutação fixa passando o comprimento como dois.

Combinação de corda

Combinação é uma coleção do elemento onde a ordem não importa. Pitão ferramentas iterativas módulo fornece o combinação() método para calcular a combinação de dados fornecidos. Podemos calcular a combinação de uma string. Vamos entender o exemplo a seguir.

Exemplo -

 import itertools seq = 'ABC' com_seq = itertools.combinations(seq, 2) for c in com_seq: print(c) 

Saída:

 ('A', 'B') ('A', 'C') ('B', 'C') 

Combinação com Substituição

O módulo itertools consiste em outro método chamado combinação_com_substituição() que também leva em consideração a combinação do próprio número. Vamos entender seu exemplo.

Combinação de Conjunto Numérico

 from itertools import combinations_with_replacement com = combinations_with_replacement(['J', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't'], 2) #Print the list of combinations for c in list(com): print(c) 

Saída:

tupla ordenada em python
 ('J', 'J') ('J', 'a') ('J', 'v') ('J', 'a') ('J', 't') ('J', 'p') ('J', 'o') ('J', 'i') ('J', 'n') ('J', 't') ('a', 'a') ('a', 'v') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('v', 'v') ('v', 'a') ('v', 't') ('v', 'p') ('v', 'o') ('v', 'i') ('v', 'n') ('v', 't') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('t', 't') ('t', 'p') ('t', 'o') ('t', 'i') ('t', 'n') ('t', 't') ('p', 'p') ('p', 'o') ('p', 'i') ('p', 'n') ('p', 't') ('o', 'o') ('o', 'i') ('o', 'n') ('o', 't') ('i', 'i') ('i', 'n') ('i', 't') ('n', 'n') ('n', 't') ('t', 't') 

Combinação de Conjunto Numérico

Se a entrada fornecida estiver na ordem de classificação, as tuplas combinadas serão retornadas na ordem de classificação. Vamos entender o exemplo a seguir.

Exemplo -

 import itertools v = [1, 2, 3, 4] com_seq = itertools.combinations_with_replacement(v, 3) for i in com_seq: print(i) 

Saída:

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

Neste tutorial, discutimos o módulo itertools para encontrar a permutação e combinação dos dados fornecidos usando o script Python.