logo

Permutacija ir derinimas Python

Šioje pamokoje sužinosime, kaip naudojant Python gauti tam tikrų duomenų permutaciją ir derinį. Norėdami rasti nurodyto skaičiaus permutaciją ir derinį, naudosime „Python“ integruotą paketą.

Permutacija ir derinimas yra esminė matematikos dalis. Python suteikia itertools biblioteką, kuri turi integruotas funkcijas permutacijai ir deriniams apskaičiuoti.

Reikalingos bibliotekos importavimas

Norėdami apskaičiuoti permutaciją ir derinį, turime importuoti itertools biblioteką. Mes galime jį importuoti naudodami toliau pateiktą komandą.

 import itertools 

Aukščiau pateiktas teiginys importuos itertools biblioteką ir sudarys kelią į jos funkciją.

Dabar kaip įvestį turime sukurti sekos sąrašą. Šis įvesties sąrašas grąžins seką, kurią sudaro permutacija ir derinys. Taip pat galime nustatyti permutacijos ir derinio ilgį.

java branduolys java

Permutacija

Permutacija yra rinkinio išdėstymas, kuriame tvarka turi reikšmės. Python itertools modulis suteikia integruotą permutacija () būdas rasti permutaciją. Supraskime šį pavyzdį.

Pavyzdys -

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

Išvestis:

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

Aukščiau pateiktame kode mes importavome itertools modulį. Mes paskambinome į permutacija () metodas, kuris naudoja eilutę kaip argumentą ir pateikia itertools objektą. Norint gauti kiekvieną permutaciją, būtina naudoti for loop.

java iteratorius žemėlapiui

Paimkime du permutacijų rinkinius.

Pavyzdys – 2

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

Išvestis:

atvirkštinė eilutė java
 ('A', 'B') ('A', 'C') ('B', 'C') 

Pavyzdys – 3

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

Išvestis:

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

Aukščiau pateiktame kode gavome kelių sveikųjų skaičių derinį.

Fiksuoto ilgio permutacija

Galime apskaičiuoti fiksuoto ilgio rinkinio permutaciją, kai imame tik nurodytą kiekvieno elemento permutacijos skaičių. Supraskime šį pavyzdį.

Pavyzdys -

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

Išvestis:

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

Aukščiau pateiktame kode mes apskaičiavome fiksuotą permutaciją, praleidžiant ilgį kaip du.

java rūšiavimo eilutės

Styginių derinys

Derinys – tai elementų rinkinys, kurio tvarka nesvarbi. Python iterto įrankiai modulis suteikia derinys () metodas, skirtas apskaičiuoti pateiktų duomenų derinį. Galime apskaičiuoti eilutės kombinaciją. Supraskime šį pavyzdį.

Pavyzdys -

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

Išvestis:

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

Derinys su pakeitimu

Itertools modulis susideda iš kito metodo, vadinamo kombinacija_su_pakeitimu() kuriame atsižvelgiama ir į patį skaičiaus derinį. Supraskime jo pavyzdį.

.tif failą

Skaičių rinkinio derinys

 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) 

Išvestis:

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

Skaičių rinkinio derinys

Jei nurodyta įvestis yra surūšiuota, derinių eilutės bus grąžintos surūšiuota tvarka. Supraskime šį pavyzdį.

Pavyzdys -

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

Išvestis:

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

Šioje pamokoje aptarėme itertools modulį, kad rastume pateiktų duomenų permutaciją ir derinį naudodami Python scenarijų.