Faktoriyel hesaplama

Faktoriel, permütasyon ve kombinasyon hesabı için bir program yazdım:

def P(n, r):
    sonuc, liste = 1, 0
    while liste != r:
        liste += 1
        sonuc *= n
        n -= 1
    return sonuc


def F(n):
    sonuc = 1
    for i in range(1, n+1):
        # print(i)
        sonuc *= i
    return sonuc


def C(n, r):
    return P(n, r) / F(r)


if __name__ == "__main__":
    print(P(5, 2))
    print(C(5, 2) == C(5, 3))
4 Beğeni

Şöyle bir örnekte verebiliriz,

Ellerinize sağlık :slight_smile:

1 Beğeni

Lambda’sız şu şekilde de olabilir

# Faktoriyel
def f(n):
    return 1 if n == 0 else n * f(n-1)

print "5! = ",f(5)

Faktoriyel fonksiyonu math modülü içinde varmış ama diğerleri yok.

Diğerleri itertools modülü içinde bulunuyor.

Onlar sayı yerine oluşabilecek sonuçları döndürmüyor mu?

Evet. İlk argümanları yinelenebilir bir veri tipi, ikinci argümanları ise sayı.