logo

Permutáció és kombináció a Pythonban

Ebben az oktatóanyagban megtudjuk, hogyan szerezhető be egy adott adat permutációja és kombinációja Python használatával. A Python beépített csomagját fogjuk használni egy adott szám permutációjának és kombinációjának megtalálásához.

A permutáció és a kombináció elengedhetetlen része a matematikának. Piton biztosítja az itertools könyvtárat, amely beépített függvényekkel rendelkezik a permutáció és a kombináció kiszámításához.

A szükséges könyvtár importálása

A permutáció és a kombináció kiszámításához importálnunk kell az itertools könyvtárat. Az alábbi paranccsal importálhatjuk.

 import itertools 

A fenti utasítás importálja az itertools könyvtárat, és útvonalat képez a funkciójához.

Most létre kell hoznunk egy sorozat listáját bemenetként. Ez a bemeneti lista visszaadja a permutációból és kombinációból álló sort. Beállíthatjuk a permutáció és a kombináció hosszát is.

Permutáció

A permutáció egy halmaz elrendezése, ahol a sorrend számít. A Python itertools modulja beépített permutáció() módszer a permutáció megtalálására. Értsük meg a következő példát.

hashset java

Példa -

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

Kimenet:

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

A fenti kódban importáltuk az itertools modult. Felhívtuk a permutáció() metódus, amely a karakterláncot veszi argumentumként, és egy itertools objektumot biztosít. Az egyes permutációk eléréséhez a for ciklust kell használni.

Vegyünk két permutációs készletet.

Példa - 2

java összehasonlító karakterlánc
 from itertools import permutations seq = permutations(['A','B']) for p in list(seq): print(p) 

Kimenet:

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

Példa - 3

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

Kimenet:

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

A fenti kódban a többszörös egész szám kombinációját kaptuk.

A rögzített hosszúság permutációja

Kiszámíthatjuk a fix hosszúságú halmaz permutációját, ahol minden elempermutációból csak meghatározott számút veszünk. Értsük meg a következő példát.

karakterlánc értéke

Példa -

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

Kimenet:

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

A fenti kódban a rögzített permutációt úgy számítottuk ki, hogy a hosszt kettőnek adtuk át.

String kombinációja

A kombináció az elemek gyűjteménye, ahol a sorrend nem számít. Piton itertools modul biztosítja a kombináció() módszer az adott adatok kombinációjának kiszámítására. Kiszámolhatjuk egy karakterlánc kombinációját. Értsük meg a következő példát.

Példa -

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

Kimenet:

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

Kombináció cserével

Az itertools modul egy másik metódusból áll combination_with_replacement() amely magának a számnak a kombinációját is figyelembe veszi. Értsük meg a példáját.

shweta tiwari

Numerikus készlet kombinációja

 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) 

Kimenet:

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

Numerikus készlet kombinációja

Ha az adott bemenet rendezési sorrendben van, akkor a kombinációs sorok rendezett sorrendben kerülnek visszaadásra. Értsük meg a következő példát.

Példa -

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

Kimenet:

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

Ebben az oktatóanyagban az itertools modult tárgyaltuk, amellyel a Python szkript segítségével megtalálhatjuk az adott adatok permutációját és kombinációját.