logo

Permutación y combinación en Python

En este tutorial, aprenderemos cómo obtener la permutación y combinación de datos determinados usando Python. Usaremos el paquete incorporado de Python para encontrar la permutación y combinación de un número determinado.

La permutación y combinación son una parte esencial en matemáticas. Pitón proporciona la biblioteca itertools que tiene funciones integradas para calcular permutaciones y combinaciones.

Importando la biblioteca requerida

Para calcular la permutación y combinación, necesitamos importar la biblioteca itertools. Podemos importarlo usando el siguiente comando.

 import itertools 

La declaración anterior importará la biblioteca itertools y formará un camino hacia su función.

Ahora, necesitamos crear la lista de una secuencia como entrada. Esta lista de entradas devolverá la tupla que consta de permutación y combinación. También podemos establecer la duración de la permutación y combinación.

Permutación

Una permutación es una disposición de un conjunto donde el orden sí importa. El módulo itertools de Python proporciona funciones incorporadas permutación() Método para encontrar la permutación. Entendamos el siguiente ejemplo.

Ejemplo -

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

Producción:

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

En el código anterior, hemos importado el módulo itertools. llamamos al permutación() método que toma una cadena como argumento y proporciona un objeto itertools. Es necesario utilizar el bucle for para obtener cada permutación.

Tomemos dos conjuntos de permutaciones.

Ejemplo - 2

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

Producción:

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

Ejemplo - 3

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

Producción:

 (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) 

En el código anterior, tenemos la combinación del número entero múltiple.

Permutación de la longitud fija.

Podemos calcular la permutación del conjunto de longitud fija donde solo tomamos un número específico de cada permutación de elementos. Entendamos el siguiente ejemplo.

Ejemplo -

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

Producción:

 ('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') 

En el código anterior, hemos calculado la permutación fija pasando la longitud como dos.

Combinación de cuerda

La combinación es una colección del elemento donde el orden no importa. Pitón herramientas iterativas El módulo proporciona la combinación() Método para calcular la combinación de datos dados. Podemos calcular la combinación de una cadena. Entendamos el siguiente ejemplo.

Ejemplo -

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

Producción:

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

Combinación con reemplazo

El módulo itertools consta de otro método llamado combinación_con_reemplazo() que también tiene en cuenta la combinación de un número en sí. Entendamos su ejemplo.

Combinación 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) 

Producción:

 ('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') 

Combinación de conjunto numérico

Si la entrada dada está en el orden ordenado, las tuplas combinadas se devolverán en el mismo orden. Entendamos el siguiente ejemplo.

Ejemplo -

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

Producción:

 (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) 

En este tutorial, analizamos el módulo itertools para encontrar la permutación y combinación de los datos dados utilizando el script Python.