logo

Python'da Permütasyon ve Kombinasyon

Bu derste Python kullanarak belirli bir verinin permütasyonunu ve kombinasyonunu nasıl elde edeceğimizi öğreneceğiz. Belirli bir sayının permütasyonunu ve kombinasyonunu bulmak için Python yerleşik paketini kullanacağız.

Permütasyon ve kombinasyon matematiğin önemli bir parçasıdır. Python permütasyon ve kombinasyonu hesaplamak için yerleşik işlevlere sahip itertools kütüphanesini sağlar.

Gerekli kütüphaneyi içe aktarma

Permütasyon ve kombinasyonu hesaplamak için itertools kütüphanesini içe aktarmamız gerekiyor. Aşağıdaki komutu kullanarak içe aktarabiliriz.

 import itertools 

Yukarıdaki ifade itertools kütüphanesini içe aktaracak ve işlevine giden bir yol oluşturacaktır.

Şimdi girdi olarak bir dizinin listesini oluşturmamız gerekiyor. Bu girdi listesi permütasyon ve kombinasyondan oluşan tuple'ı döndürecektir. Ayrıca permütasyon ve kombinasyonun uzunluğunu da ayarlayabiliriz.

javascript dizesini değiştir

Permütasyon

Permütasyon, sıranın önemli olduğu bir kümenin düzenlenmesidir. Python itertools modülü dahili sağlar permütasyon() permütasyonu bulma yöntemi. Aşağıdaki örneği anlayalım.

Örnek -

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

Çıktı:

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

Yukarıdaki kodda itertools modülünü içe aktardık. biz aradık permütasyon() string'i argüman olarak alan ve bir itertools nesnesi sağlayan yöntem. Her permütasyonu elde etmek için for döngüsünü kullanmak gerekir.

İki permütasyon kümesi alalım.

Örnek - 2

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

Çıktı:

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

Örnek - 3

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

Çıktı:

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

Yukarıdaki kodda çoklu tamsayıların kombinasyonunu elde ettik.

Sabit uzunluğun permütasyonu

Her bir öğenin permütasyonundan yalnızca belirli sayıda aldığımızda, sabit uzunluklu kümenin permütasyonunu hesaplayabiliriz. Aşağıdaki örneği anlayalım.

Örnek -

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

Çıktı:

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

Yukarıdaki kodda uzunluğu iki olarak geçirerek sabit permütasyonu hesapladık.

Dize kombinasyonu

Kombinasyon, sıranın önemli olmadığı öğelerin bir koleksiyonudur. Python itertools modül şunları sağlar kombinasyon() Verilen verilerin kombinasyonunu hesaplama yöntemi. Bir dizenin birleşimini hesaplayabiliriz. Aşağıdaki örneği anlayalım.

Örnek -

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

Çıktı:

daktilo ok işlevi
 ('A', 'B') ('A', 'C') ('B', 'C') 

Değiştirme ile Kombinasyon

itertools modülü adı verilen başka bir yöntemden oluşur. kombinasyon_with_replacement() bu aynı zamanda bir sayının kendisinin kombinasyonunu da dikkate alır. Örneğini anlayalım.

Sayısal Setin Kombinasyonu

 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) 

Çıktı:

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

Sayısal Setin Kombinasyonu

Verilen girdi sıralı düzendeyse kombinasyon demetleri sıralı düzende döndürülür. Aşağıdaki örneği anlayalım.

Örnek -

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

Çıktı:

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

Bu derste, Python betiğini kullanarak verilen verilerin permütasyonunu ve kombinasyonunu bulmak için itertools modülünü tartıştık.