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:
('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.