logo

Permutazioni e combinazioni in Python

In questo tutorial impareremo come ottenere la permutazione e la combinazione di determinati dati utilizzando Python. Utilizzeremo il pacchetto integrato Python per trovare la permutazione e la combinazione di un dato numero.

La permutazione e la combinazione sono una parte essenziale in matematica. Pitone fornisce la libreria itertools che ha le funzioni integrate per calcolare permutazioni e combinazioni.

myflixr

Importazione della libreria richiesta

Per calcolare la permutazione e la combinazione, dobbiamo importare la libreria itertools. Possiamo importarlo utilizzando il comando seguente.

 import itertools 

L'istruzione di cui sopra importerà la libreria itertools e costituirà un percorso verso la sua funzione.

Ora dobbiamo creare l'elenco di una sequenza come input. Questo elenco di input restituirà la tupla che consiste in permutazione e combinazione. Possiamo anche impostare la lunghezza della permutazione e della combinazione.

Permutazione

Una permutazione è una disposizione di un insieme in cui l'ordine ha importanza. Il modulo Python itertools fornisce file integrati permutazione() metodo per trovare la permutazione. Comprendiamo il seguente esempio.

Esempio -

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

Produzione:

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

Nel codice sopra abbiamo importato il modulo itertools. Abbiamo chiamato il permutazione() metodo che accetta una stringa come argomento e fornisce un oggetto itertools. È necessario utilizzare il ciclo for per ottenere ciascuna permutazione.

Prendiamo due serie di permutazioni.

Esempio - 2

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

Produzione:

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

Esempio - 3

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

Produzione:

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

Nel codice sopra, abbiamo ottenuto la combinazione del numero intero multiplo.

stringa.sottostringa java

Permutazione della lunghezza fissa

Possiamo calcolare la permutazione dell'insieme di lunghezza fissa dove prendiamo solo un numero specifico di permutazione di ciascun elemento. Comprendiamo il seguente esempio.

Esempio -

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

Produzione:

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

Nel codice sopra, abbiamo calcolato la permutazione fissa passando la lunghezza come due.

Combinazione di stringhe

La combinazione è una raccolta di elementi in cui l'ordine non ha importanza. Pitone itertools il modulo fornisce il file combinazione() metodo per calcolare la combinazione di dati forniti. Possiamo calcolare la combinazione di una stringa. Comprendiamo il seguente esempio.

Esempio -

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

Produzione:

dimensioni dei caratteri in lattice
 ('A', 'B') ('A', 'C') ('B', 'C') 

Combinazione con sostituzione

Il modulo itertools è costituito da un altro metodo chiamato combinazione_con_sostituzione() che prende in considerazione anche la combinazione di un numero stesso. Comprendiamo il suo esempio.

Combinazione di set numerici

 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) 

Produzione:

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

Combinazione di set numerici

Se l'input fornito è in ordine, le tuple della combinazione verranno restituite in ordine. Comprendiamo il seguente esempio.

Esempio -

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

Produzione:

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

In questo tutorial, abbiamo discusso il modulo itertools per trovare la permutazione e la combinazione dei dati forniti utilizzando lo script Python.