öğrenme amacıyla 7 elemanlı bir kümenin 5 elemanlı alt kümelerini bulan bir program yazmaya çalıştım. fakat alt kümeleri yazarken biz insanların bu işi elle yaparken kullandığımız sıralama metodunu kullansın istedim. çok uzun sürede de olsa sonunda istediğim şeyi yaptırmayı başardım.
şimdi ise aklımda birkaç soru var:
- bu kodda değişken sayısını ve/veya döngü sayısını azaltamaz mıyım?
- bu kodu kullanıcının girdiği x eleman sayılı kümenin y eleman sayılı alt kümelerini yazdıracak hale nasıl getirebilirim?
- şu anki yazdığım kodun yaptığını yapacak çok daha başka ve kısa bir yol var mıydı?
yardımlarınız için şimdiden teşekkürler…
Kod:
kume = ["a", "b", "c", "d", "e", "f", "g"]
besliler = []
n, p, q, r = 4, 3, 2, 1
for i in range(0, 3):
for j in range(r, 4):
for k in range(q, 5):
for t in range(p, 6):
for s in range(n, 7):
besliler.append((kume[i], kume[j], kume[k], kume[t], kume[s]))
n += 1
p += 1
n = p + 1
q += 1
p = q + 1
n = q + 2
r += 1
q = r + 1
p = r + 2
n = r + 3
for h in besliler:
print(h)
print(len(besliler))
Çıktı:
('a', 'b', 'c', 'd', 'e')
('a', 'b', 'c', 'd', 'f')
('a', 'b', 'c', 'd', 'g')
('a', 'b', 'c', 'e', 'f')
('a', 'b', 'c', 'e', 'g')
('a', 'b', 'c', 'f', 'g')
('a', 'b', 'd', 'e', 'f')
('a', 'b', 'd', 'e', 'g')
('a', 'b', 'd', 'f', 'g')
('a', 'b', 'e', 'f', 'g')
('a', 'c', 'd', 'e', 'f')
('a', 'c', 'd', 'e', 'g')
('a', 'c', 'd', 'f', 'g')
('a', 'c', 'e', 'f', 'g')
('a', 'd', 'e', 'f', 'g')
('b', 'c', 'd', 'e', 'f')
('b', 'c', 'd', 'e', 'g')
('b', 'c', 'd', 'f', 'g')
('b', 'c', 'e', 'f', 'g')
('b', 'd', 'e', 'f', 'g')
('c', 'd', 'e', 'f', 'g')
21