logo

Permutaatio ja yhdistelmä Pythonissa

Tässä opetusohjelmassa opimme saamaan permutaatiot ja yhdistelmät tietyistä tiedoista Pythonilla. Käytämme Pythonin sisäänrakennettua pakettia löytääksemme tietyn luvun permutaation ja yhdistelmän.

Permutaatio ja yhdistelmä ovat olennainen osa matematiikkaa. Python tarjoaa itertools-kirjaston, jossa on sisäänrakennetut funktiot permutaatioiden ja yhdistelmän laskemiseen.

Vaaditun kirjaston tuonti

Permutaation ja yhdistelmän laskemiseksi meidän on tuotava itertools-kirjasto. Voimme tuoda sen käyttämällä alla olevaa komentoa.

 import itertools 

Yllä oleva lauseke tuo itertools-kirjaston ja muodostaa polun sen toimintoon.

Nyt meidän on luotava sekvenssiluettelo syötteenä. Tämä syöteluettelo palauttaa monikon, joka koostuu permutaatiosta ja yhdistelmästä. Voimme myös asettaa permutaation ja yhdistelmän pituuden.

Permutaatio

Permutaatio on joukon järjestely, jossa järjestyksellä on väliä. Python itertools -moduuli tarjoaa sisäänrakennetun permutaatio() tapa löytää permutaatio. Ymmärretään seuraava esimerkki.

Esimerkki -

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

Lähtö:

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

Yllä olevassa koodissa olemme tuoneet itertools-moduulin. Soitimme permutaatio() menetelmä, joka ottaa merkkijonon argumenttina ja tarjoaa itertools-objektin. On välttämätöntä käyttää for loop -toimintoa kunkin permutoinnin saamiseksi.

Otetaan kaksi permutaatiosarjaa.

Esimerkki - 2

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

Lähtö:

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

Esimerkki - 3

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

Lähtö:

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

Yllä olevassa koodissa meillä on useiden kokonaislukujen yhdistelmä.

Kiinteän pituuden permutaatio

Voimme laskea kiinteän pituuden joukon permutaation, jossa otamme vain tietyn määrän jokaista elementtipermutaatiota. Ymmärretään seuraava esimerkki.

Esimerkki -

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

Lähtö:

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

Yllä olevassa koodissa olemme laskeneet kiinteän permutaation antamalla pituuden kaksi.

Stringin yhdistelmä

Yhdistelmä on elementtien kokoelma, jossa järjestyksellä ei ole väliä. Python itert-työkalut moduuli tarjoaa yhdistelmä() menetelmä annettujen tietojen yhdistelmän laskemiseksi. Voimme laskea merkkijonon yhdistelmän. Ymmärretään seuraava esimerkki.

Esimerkki -

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

Lähtö:

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

Yhdistelmä korvaamiseen

Itertools-moduuli koostuu toisesta menetelmästä nimeltä yhdistelmä_korvauksella() joka ottaa huomioon myös itse luvun yhdistelmän. Ymmärretään sen esimerkki.

Numerosarjan yhdistelmä

 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) 

Lähtö:

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

Numerosarjan yhdistelmä

Jos annettu syöte on lajittelujärjestyksessä, yhdistelmätuplet palautetaan lajiteltuna. Ymmärretään seuraava esimerkki.

Esimerkki -

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

Lähtö:

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

Tässä opetusohjelmassa olemme keskustelleet itertools-moduulista, jolla löydetään permutaatio ja annettujen tietojen yhdistelmä Python-komentosarjan avulla.