Permütasyon
Matematikte permütasyon, her sembolün sadece bir veya birkaç kez kullanıldığı sıralı bir dizidir.
1'den 10'a kadar olan doğal sayıları içeren n elemanlı kümede r = 4 olarak alınırsa permütasyonların sayısı {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} kümesinden sırayı da gözetmek suretiyle oluşturulabilecek dört değişik elemanlı kümelerin sayısını ifade eder.
Permütasyonların hesaplanması
Permütasyonun kombinasyondan farkı, sıralamanın önemli olmasıdır.
Tekrarsız
Tekrarsız permütasyonda her eleman sadece bir kez kullanılabilir.
n elemanlı bir kümeden seçilen r elemanlı "tekrarsız" permütasyonların toplamı (n ≥ r olmak şartıyla) aşağıdaki formülle ifade edilir:
- Örnek
Örneğin 5 atın katıldığı bir yarışta seçilen 3 yarış atının "sırasıyla" birinci, ikinci ve üçüncü gelme olasılığı hesaplanırken bu formül kullanılabilir. Bir atın aynı yarışta iki kez birinci gelmesi mümkün değildir.
Seçilen sıralamanın doğru çıkma olasılığı 1/60'tır.
Tekrarlı
"Tekrarlı" permütasyonlar ise nr formülü ile ifade edilir.
Bu formül ile örneğin 3 haneli rakamsal bir çanta şifresinin permütasyonları (seçilebilecek toplam şifre adedi) hesaplanabilir. Her çemberde 0-9 arası 10 rakam olduğu için toplam şifre sayısı 10 x 10 x 10 = 103 = 1000'dir. Olası şifrelerin oluşturduğu seri 000, 001, 002 ... 997, 998, 999 şeklindedir. Yani rastgele denenen bir şifrenin çanta kilidini açma olasılığı 1/1000'dir.
Bilgisayarla hesaplama
Oluşturulacak küme sıralı olduğundan dört değişik elemanın olası seçilme şekillerinin düşünülüp bu dörtlü dizilerin seçilme şekillerinin sayısı hesaplanmalıdır:
- 10 elemanlı kümeden seçebilecek on eleman vardır.
- Bir eleman seçildikten sonra bir daha seçilemediğinden, ikinci eleman seçilirken dokuz sayı kalır. Her ilk seçilen on eleman için dokuz ikinci eleman seçme imkânı olduğundan ikinci eleman 10∙9 = 90 ayrı şekilde sıralanır.
Genelleştirilip n ve r değişkenleri ile ifade edilirse
- İlk eleman için
- İkinci eleman için
- r kadar eleman seçmek içinse adet seçenek vardır.
Örnekler
C programla dili
C kodunda permütasyon şu şekilde hesaplanabilir:
long permutasyon (const int n, const int r) {
int i;
long sonuc = 1;
for (i = 0; i < r; i++)
{
sonuc = sonuc*(n - i);
}
return sonuc;
}
PHP programla dili
PHP kodunda şu şekilde bulunabilir:
function permutasyon($n,$r){
$sonuc = 1;
for((($i = ($n - $r) + 1)); $i <= $n; $i++){
$sonuc = $i*$sonuc;
}
return $sonuc;
}
permutasyon(7, 2); // 42
def permutasyon(n, r):
sonuc = 1
for i in range(r):
sonuc = sonuc * (n - i)
return sonuc