Herkese Merhaba,
Bir fonksiyon yazmak istiyorum.
Fonksiyonun görevi, liste içeriğini (kombinasyon hesabına göre) bölümlere ayırmak olacak.
örnek liste şu olsun;
listem = [1,2,3,4,5]
def bolumle(liste):
...
...
...
bolumle(listem)
olmasını istediğim Çıktı:
ikili = [[1,2], [1,3], [1,4], [1,5], [2,3], [2,4], [2,5], [3,4], [3,5], [4,5]]
üclü = [[1,2,3], [1,2,4], [1,2,5], [1,3,4], [1,3,5], [1,4,5], [2,3,4], [2,3,5], [2,4,5], [3,4,5]]
dörtlü = [[1,2,3,4], [1,2,3,5], [1,2,4,5], [1,3,4,5], [2,3,4,5]]
liste içeriği değiştikçe (arttıkça, ya da azaldıkça) sonuç beşli, altılı,…vb değişecek.
Kombinasyon hesabına göre;
-
[ kombinasyon(5,2) = 5! / ((5-2)!*2!) = 10 ] 10 adet İKİLİ liste elemanı oluşturulmalı. Aşağıda 2 elemanlı liste barındıran 10 elemanlı ana liste görülüyor.
ikili = [[1,2], [1,3], [1,4], [1,5], [2,3], [2,4], [2,5], [3,4], [3,5], [4,5]] -
[ kombinasyon(5,3) = 5! / ((5-3)!*3!) = 10 ] 10 adet ÜÇLÜ liste elemanı oluşturulmalı. Aşağıda 3 elemanlı liste barındıran 10 elemanlı ana liste görülüyor.
üclü = [[1,2,3], [1,2,4], [1,2,5], [1,3,4], [1,3,5], [1,4,5], [2,3,4], [2,3,5], [2,4,5], [3,4,5]] -
[ kombinasyon(5,4) = 5! / ((5-4)!*4!) = 5 ] 5 adet DÖRTLÜ liste elemanı oluşturulmalı. Aşağıda 4 elemanlı liste barındıran 5 elemanlı ana liste görülüyor.
dörtlü = [[1,2,3,4], [1,2,3,5], [1,2,4,5], [1,3,4,5], [2,3,4,5]]
Bu işlemi bir tek fonksiyon ile yapmak mümkün mü? Yoksa her bir grup için (ikili, üçlü, dörtlü,…vb) ayrı birer fonksiyon mu yazmak gerekir?