logo

Permutácia a kombinácia v Pythone

V tomto návode sa naučíme, ako získať permutáciu a kombináciu daných údajov pomocou Pythonu. Na nájdenie permutácie a kombinácie daného čísla použijeme vstavaný balík Pythonu.

Permutácia a kombinácia sú nevyhnutnou súčasťou matematiky. Python poskytuje knižnicu itertools, ktorá má vstavané funkcie na výpočet permutácie a kombinácie.

Importovanie požadovanej knižnice

Na výpočet permutácie a kombinácie potrebujeme importovať knižnicu itertools. Môžeme ho importovať pomocou nižšie uvedeného príkazu.

 import itertools 

Vyššie uvedené vyhlásenie naimportuje knižnicu itertools a vytvorí cestu k jej funkcii.

Teraz musíme vytvoriť zoznam sekvencie ako vstup. Tento zoznam vstupov vráti n-ticu, ktorá pozostáva z permutácie a kombinácie. Môžeme nastaviť aj dĺžku permutácie a kombinácie.

java nahradiť všetky

Permutácia

Permutácia je usporiadanie množiny, kde na poradí záleží. Modul Python itertools poskytuje vstavaný permutácia() metóda na nájdenie permutácie. Poďme pochopiť nasledujúci príklad.

Príklad -

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

Výkon:

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

Vo vyššie uvedenom kóde sme importovali modul itertools. Zavolali sme na permutácia() metóda, ktorá berie reťazec ako argument a poskytuje objekt itertools. Na získanie každej permutácie je potrebné použiť cyklus for.

Zoberme si dve sady permutácií.

Príklad - 2

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

Výkon:

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

Príklad - 3

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

Výkon:

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

Vo vyššie uvedenom kóde máme kombináciu viacnásobného celého čísla.

Permutácia pevnej dĺžky

Môžeme vypočítať permutáciu množiny pevnej dĺžky, kde vezmeme len určený počet permutácií každého prvku. Poďme pochopiť nasledujúci príklad.

Príklad -

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

Výkon:

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

Vo vyššie uvedenom kóde sme vypočítali pevnú permutáciu prejdením dĺžky ako dve.

Kombinácia reťazca

Kombinácia je súbor prvkov, kde na poradí nezáleží. Python itertools modul poskytuje kombinácia() spôsob výpočtu kombinácie daných údajov. Môžeme vypočítať kombináciu reťazca. Poďme pochopiť nasledujúci príklad.

Príklad -

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

Výkon:

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

Kombinácia s náhradou

Modul itertools pozostáva z ďalšej metódy tzv combination_with_replacement() ktorý berie do úvahy aj kombináciu samotného čísla. Poďme pochopiť jeho príklad.

Kombinácia číselnej sady

 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) 

Výkon:

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

Kombinácia číselnej sady

Ak je daný vstup v zoradenom poradí, kombinované n-tice sa vrátia v zoradenom poradí. Poďme pochopiť nasledujúci príklad.

Príklad -

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

Výkon:

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

V tomto návode sme diskutovali o module itertools na nájdenie permutácie a kombinácie daných údajov pomocou skriptu Python.