logo

Permutation og kombination i Python

I denne tutorial lærer vi, hvordan man får permutationen og kombinationen af ​​en given data ved hjælp af Python. Vi vil bruge Python indbyggede pakke til at finde permutationen og kombinationen af ​​et givet tal.

Permutation og kombination er en væsentlig del i matematik. Python leverer itertools-biblioteket, der har de indbyggede funktioner til at beregne permutation og kombination.

Import af det påkrævede bibliotek

For at beregne permutationen og kombinationen skal vi importere itertools-biblioteket. Vi kan importere det ved at bruge nedenstående kommando.

 import itertools 

Ovenstående erklæring vil importere itertools-biblioteket og danner en vej til dets funktion.

Nu skal vi oprette listen over en sekvens som input. Denne liste over input vil returnere tuple, som består af permutation og kombination. Vi kan også indstille længden af ​​permutationen og kombinationen.

Permutation

En permutation er et arrangement af et sæt, hvor rækkefølgen betyder noget. Python itertools modul giver indbygget permutation() metode til at finde permutationen. Lad os forstå følgende eksempel.

lort

Eksempel -

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

Produktion:

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

I ovenstående kode har vi importeret itertools-modulet. Vi ringede til permutation() metode, der tager streng som et argument og giver et itertools-objekt. Det er nødvendigt at bruge for loop for at få hver permutation.

Lad os tage to sæt permutation.

smide kast i java

Eksempel - 2

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

Produktion:

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

Eksempel - 3

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

Produktion:

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

I ovenstående kode har vi kombinationen af ​​det multiple heltal.

Permutation af den faste længde

Vi kan beregne permutationen af ​​det faste længdesæt, hvor vi kun tager et specificeret antal af hver elementpermutation. Lad os forstå følgende eksempel.

Eksempel -

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

Produktion:

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

I ovenstående kode har vi beregnet den faste permutation ved at overføre længde som to.

Kombination af streng

Kombination er en samling af elementet, hvor rækkefølgen er ligegyldig. Python itertools modul giver kombination() metode til at beregne kombinationen af ​​givne data. Vi kan beregne kombinationen af ​​en streng. Lad os forstå følgende eksempel.

Eksempel -

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

Produktion:

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

Kombination med udskiftning

Itertools-modulet består af en anden metode kaldet kombination_med_erstatning() som også tager selve kombinationen af ​​et tal under overvejelse. Lad os forstå dets eksempel.

Kombination af numerisk sæt

 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) 

Produktion:

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

Kombination af numerisk sæt

Hvis det givne input er i den sorterede rækkefølge, returneres kombinationstuplerne i sorteret rækkefølge. Lad os forstå følgende eksempel.

kamelhylster python

Eksempel -

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

Produktion:

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

I denne tutorial har vi diskuteret itertools-modulet for at finde permutationen og kombinationen af ​​de givne data ved hjælp af Python-scriptet.