GeeksforGeeks

Python tarjoaa suoria menetelmiä sekvenssin permutaatioiden ja kombinaatioiden löytämiseen. Nämä menetelmät löytyvät itertools-paketista.

Permutaatio

Tuo ensin itertools-paketti, jotta voit toteuttaa permutaatiomenetelmän pythonissa. Tämä metodi ottaa syötteenä listan ja palauttaa objektilistan tupleista, jotka sisältävät kaikki permutaatiot listamuodossa.

from itertools import permutations
perm = permutations()

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

Se tuottaa n! permutaatiota, jos syötesarjan pituus on n.

Jos haluat saada permutaatioita, joiden pituus on L, toteuta se tällä tavalla.

from itertools import permutations
perm =

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

Se tuottaa nCr * r! permutaatioita, jos syöttöjonon pituus on n ja syöttöparametri on r.

Kombinaatio

Tämä metodi ottaa syötteenä listan ja syötteen r ja palauttaa objektien listan tupleista, jotka sisältävät kaikki mahdolliset yhdistelmät pituudeltaan r listamuodossa.

from itertools import combinations
comb = combinations(, 2)
for i in list(comb):
print (i)




Tulos:

(1, 2)(1, 3)(2, 3)
  1. Yhdistelmät lähetetään syötteen leksikografisessa lajittelujärjestyksessä. Jos siis syöttöluettelo on lajiteltu, yhdistelmätuplet tuotetaan lajitellussa järjestyksessä.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)




Tulost:

(2, 1)(2, 3)(1, 3)
  • Elementtejä käsitellään ainutlaatuisina niiden sijainnin perusteella, ei niiden arvon perusteella. Jos siis syöttöelementit ovat yksilöllisiä, jokaisessa yhdistelmässä ei ole toistuvia arvoja.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    
    

    Tulost:

    (1, 1)(1, 3)(1, 3)
  • Jos haluamme tehdä yhdistelmän samasta elementistä samaan elementtiin, käytämme combinations_with_replacement.

    from itertools import combinations_with_replacement
    comb = combinations_with_replacement(, 2)

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

    Tämän artikkelin on kirjoittanut Raju Varshney. Kirjoita kommentteja, jos löydät jotain virheellistä tai haluat jakaa lisää tietoa yllä käsitellystä aiheesta

    Artikkelin tunnisteet :
    Practice Tags :
  • Vastaa

    Sähköpostiosoitettasi ei julkaista.