Faktöriyel
Faktöriyel, matematikte, sağına ünlem işareti konulmuş sayıya verilen isim, daha genel olan Gama fonksiyonunun tam sayılarla sınırlanmış özel bir durumudur. Bu sınırlamanın nedeni gerçek veya reel sayılarda bu hesabın imkansız oluşudur. 1'den başlayarak belirli bir sayma sayısına kadar olan sayıların çarpımına o sayının faktöriyeli denir. Basit bir şekilde faktöriyel, n tane ayrık elemanın kaç farklı şekilde sıralanabileceğidir.
n | n! |
---|---|
0 | 1 |
1 | 1 |
2 | 2 |
3 | 6 |
4 | 24 |
5 | 120 |
6 | 720 |
7 | 5040 |
8 | 40320 |
9 | 362880 |
10 | 3628800 |
11 | 39916800 |
12 | 479001600 |
13 | 6227020800 |
14 | 87178291200 |
15 | 1307674368000 |
16 | 20922789888000 |
17 | 355687428096000 |
18 | 6402373705728000 |
19 | 121645100408832000 |
20 | 2432902008176640000 |
25 | 1,551121004×1025 |
50 | 3,041409320×1064 |
70 | 1,197857167×10100 |
100 | 9,332621544×10157 |
450 | 1,733368733×101000 |
1000 | 4,023872601×102567 |
3249 | 6,412337688×1010000 |
10000 | 2,846259681×1035659 |
25206 | 1,205703438×10100000 |
100000 | 2,824229408×10456573 |
205023 | 2,503898932×101000004 |
1000000 | 8,263931688×105565708 |
10100 | 109,956570552×10101 |
Fonksiyon
değiştirFaktöriyel fonksiyonu verilen pozitif tam sayının kendisinden önceki bütün tam sayılarla 1'e inilinceye kadar çarpılması sonucunda elde edilen çarpımı gösterir.
Örnek olarak şunları gösterebiliriz:
Sıfır pozitif bir sayı olmamasına rağmen faktöriyeli tanım olarak bire eşittir: 0!=1
Çünkü 0 ayrık eleman hiçbir şekilde sıralanamaz yani sonuç tektir.
Problem çözümünde kullanımı
değiştirÖrnekler
değiştirSual: Ali'nin üç çeşit gömleği, dört çeşit pantolonu, iki çeşit ayakkabısı vardır. Bir gömlek, bir pantolon ve bir ayakkabıyı kaç farklı şekilde giyer?
Cevap: farklı şekilde giyer.
Kodla çözümü
değiştirProgramlama dillerinde de sıklıkla karşılaşılan bir kavram olan faktöriyel, özyineli (kendi kendini çağıran) ya da tekrarlamalı (iteratif) fonksiyonlarla hesaplanabilir.
Java programlama dilinde yazılmış özyineli ve tekrarlamalı fonksiyonlara birer örnek verecek olursak:
// n! hesabi - Ozyineli
değiştirPublic Function Faktoriyel_Oz(n) { IF n <= 1 Then Faktoriyel_Oz = 1 Else Faktoriyel_Oz = n*Faktoriyel_Oz(n - 1) End IF End Function
// n! hesabi - tekrarlamali
değiştirstatic double faktoriyelIt(double n) { double f = 1; for (double i = n; i >= 1; --i) { f *= i; } return f; }