V tomto tutoriálu se naučíme, jak získat permutaci a kombinaci daných dat pomocí Pythonu. K nalezení permutace a kombinace daného čísla použijeme vestavěný balíček Pythonu.
Permutace a kombinace jsou nezbytnou součástí matematiky. Krajta poskytuje knihovnu itertools, která má vestavěné funkce pro výpočet permutace a kombinace.
Import požadované knihovny
Pro výpočet permutace a kombinace potřebujeme importovat knihovnu itertools. Můžeme jej importovat pomocí níže uvedeného příkazu.
import itertools
Výše uvedený příkaz naimportuje knihovnu itertools a vytvoří cestu k její funkci.
Nyní musíme vytvořit seznam sekvence jako vstup. Tento seznam vstupů vrátí n-tici, která se skládá z permutace a kombinace. Můžeme také nastavit délku permutace a kombinace.
negace diskrétní matematika
Permutace
Permutace je uspořádání množiny, kde na pořadí záleží. Python modul itertools poskytuje vestavěný modul permutace() metoda k nalezení permutace. Pojďme pochopit následující příklad.
Příklad -
from itertools import permutations seq = permutations(['1','2','3']) print(seq) for p in list(seq): print(p)
Výstup:
('1', '2', '3') ('1', '3', '2') ('2', '1', '3') ('2', '3', '1') ('3', '1', '2') ('3', '2', '1')
Ve výše uvedeném kódu jsme importovali modul itertools. Zavolali jsme na permutace() metoda, která bere řetězec jako argument a poskytuje objekt itertools. Pro získání každé permutace je nutné použít cyklus for.
if příkaz java
Vezměme si dvě sady permutací.
Příklad - 2
from itertools import permutations seq = permutations(['A','B']) for p in list(seq): print(p)
Výstup:
multithreading v Javě
('A', 'B') ('A', 'C') ('B', 'C')
Příklad - 3
from itertools import permutations list1 = [1, 2, 3, 4] seq = permutations(list1) print(seq) for p in list(seq): print(p)
Výstup:
(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)
Ve výše uvedeném kódu máme kombinaci vícenásobného celého čísla.
Permutace pevné délky
Můžeme vypočítat permutaci množiny pevné délky, kde vezmeme pouze zadaný počet permutací každého prvku. Pojďme pochopit následující příklad.
Příklad -
from itertools import permutations seq = permutations(['H', 'e', 'l', 'l', 'o'], 3) for p in list(seq): print(p)
Výstup:
('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')
Ve výše uvedeném kódu jsme vypočítali pevnou permutaci předáním délky jako dvě.
c++ rozdělení řetězce
Kombinace řetězce
Kombinace je soubor prvků, kde na pořadí nezáleží. Krajta itertools modul poskytuje kombinace() způsob výpočtu kombinace daných dat. Můžeme vypočítat kombinaci řetězce. Pojďme pochopit následující příklad.
Příklad -
import itertools seq = 'ABC' com_seq = itertools.combinations(seq, 2) for c in com_seq: print(c)
Výstup:
('A', 'B') ('A', 'C') ('B', 'C')
Kombinace s výměnou
Modul itertools se skládá z další metody tzv combination_with_replacement() který bere v úvahu i kombinaci samotného čísla. Pojďme pochopit jeho příklad.
bublinové řazení v Javě
Kombinace číselné 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ýstup:
('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')
Kombinace číselné sady
Pokud je daný vstup v seřazeném pořadí, budou kombinované n-tice vráceny v seřazeném pořadí. Pojďme pochopit následující příklad.
Příklad -
import itertools v = [1, 2, 3, 4] com_seq = itertools.combinations_with_replacement(v, 3) for i in com_seq: print(i)
Výstup:
(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 tutoriálu jsme probrali modul itertools pro nalezení permutace a kombinace daných dat pomocí skriptu Python.