İlk önce faktöriyel fonksiyonunu tanımlıyoruz:
def factorial(f):result = 1if f < 0:print ("Negatif sayılar için faktöriyel bulunmaz.")elif f == 0:print ("O ın faktöriyel 1 dir.")else:for i in range(1,f + 1):result = result*ireturn result
Bunu test edelim:
print (factorial(12))
Şimdi bu fonksiyonu kullanan bir permütasyon fonksiyonu yazıyoruz:
def permutation(x,y):resultp = 0if (y>x):resultp = resultpelse:resultp = factorial(x)/factorial(x-y)return resultp
Test:
print (permutation(5,3))
Faktöriyel fonksiyonunu rekürsif de yazabilirsiniz ya da for yerine while kullanabilirsiniz. Ben for içinde artan bir sayaç ile yaptım ama bazıları azalan kullanmayı tercih eder. Permütasyon için ise pek fazla farklı seçeneğiniz yok ama farklı yollar denemek çoğunlukla yararlıdır. Yukarıda yazılı kodları test ederken girintileri/boşlukları (tab) düzgün almaya gayret zira Python indentler (içeri boşluk) olmadan yaşayamaz. (: