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.