logo

Permutacja i kombinacja w Pythonie

W tym samouczku dowiemy się, jak uzyskać permutację i kombinację danych za pomocą Pythona. Do znalezienia permutacji i kombinacji danej liczby użyjemy wbudowanego pakietu Pythona.

Permutacje i kombinacje są istotną częścią matematyki. Pyton udostępnia bibliotekę itertools z wbudowanymi funkcjami do obliczania permutacji i kombinacji.

Importowanie wymaganej biblioteki

Aby obliczyć permutację i kombinację, musimy zaimportować bibliotekę itertools. Możemy go zaimportować za pomocą poniższego polecenia.

komputer wynalazł, w którym roku
 import itertools 

Powyższa instrukcja zaimportuje bibliotekę itertools i utworzy ścieżkę do jej funkcji.

Teraz musimy utworzyć listę sekwencji jako dane wejściowe. Ta lista danych wejściowych zwróci krotkę składającą się z permutacji i kombinacji. Możemy również ustawić długość permutacji i kombinacji.

Permutacja

Permutacja to układ zbioru, w którym kolejność ma znaczenie. Moduł Python itertools zapewnia wbudowany moduł permutacja() metoda znalezienia permutacji. Rozumiemy następujący przykład.

Przykład -

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

Wyjście:

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

W powyższym kodzie zaimportowaliśmy moduł itertools. Zadzwoniliśmy do permutacja() metoda, która przyjmuje ciąg znaków jako argument i udostępnia obiekt itertools. Aby uzyskać każdą permutację, konieczne jest użycie pętli for.

Weźmy dwa zestawy permutacji.

Przykład - 2

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

Wyjście:

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

Przykład - 3

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

Wyjście:

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

W powyższym kodzie mamy kombinację wielokrotnej liczby całkowitej.

sortowanie tablicowe Java

Permutacja stałej długości

Możemy obliczyć permutację zbioru o stałej długości, gdzie bierzemy tylko określoną liczbę permutacji każdego elementu. Rozumiemy następujący przykład.

Przykład -

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

Wyjście:

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

W powyższym kodzie obliczyliśmy stałą permutację, przekazując długość jako dwa.

Połączenie sznurka

Kombinacja to zbiór elementów, w którym kolejność nie ma znaczenia. Pyton itertools moduł zapewnia połączenie() metoda obliczania kombinacji danych. Możemy obliczyć kombinację ciągu. Rozumiemy następujący przykład.

Przykład -

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

Wyjście:

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

Połączenie z wymianą

Moduł itertools składa się z innej metody zwanej kombinacja_z_zamianą() który uwzględnia również kombinację samej liczby. Rozumiemy jego przykład.

Kombinacja zestawu numerycznego

 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) 

Wyjście:

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

Kombinacja zestawu numerycznego

Jeśli dane wejściowe są w kolejności posortowanej, krotki kombinacji zostaną zwrócone w kolejności posortowanej. Rozumiemy następujący przykład.

Przykład -

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

Wyjście:

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

W tym samouczku omówiliśmy moduł itertools, który pozwala znaleźć permutację i kombinację podanych danych za pomocą skryptu Python.