Toplam olasılık sayısı
1) Kapat! İlk karakter için 62, 2. karakter için 62 seçeneğiniz var.62⋅62⋅62⋅⋯62=6220saçma bir sayıdır.
"Hedef" Dizeyle Çarpışma
2) Yukarıda belirlediğimiz gibi, 6220potansiyel dizeler. "Hedef" dizesini tahmin etmek için 100.000 olasılıktan 1'den daha iyi olması için kaç tane tahmin etmeniz gerektiğini bilmek istersiniz. Esasen,
x6220≥1105
Anlaşmak için x'i yuvarlamanız (veya tam olarak eşit olmaları durumunda bir tane eklemeniz) gerekir, ancak bir saniyede göreceğiniz gibi, gerçekten önemli değil.
Temel cebir sayesinde,
105x105x105xx≥6220≥(6.2⋅10)20≥6.220⋅1020≥6.220⋅1015
Matematiği yapmak, 6.220 hakkında 7⋅1015, hadi her şeye diyelim 7⋅1030 ya da daha özlü bir şekilde, çok şey var.
Bu, elbette, uzun parolaların neden iyi çalıştığını :-) Gerçek parolalar için, elbette, yirmiye eşit veya daha az uzunluktaki dizeler hakkında endişelenmeniz gerekir, bu da olasılıkların sayısını daha da artırır.
Listedeki kopyalar
Şimdi diğer senaryoyu ele alalım. Dizeler rastgele oluşturulur ve iki dizenin eşleşmesi için 1: 100.000 şansı bulunmadan önce kaç tane oluşturulabileceğini belirlemek isteriz. Bu sorunun klasik versiyonuna Doğum Günü Sorunu (veya 'Paradoks') denir ve n kişiden ikisinin aynı doğum gününe sahip olma olasılığının ne olduğunu sorar. Vikipedi makalesi [1] iyi görünüyor ve faydalı bulabileceğiniz bazı tablolar var. Yine de, burada da cevap için lezzet vermeye çalışacağım.
Akılda tutulması gereken bazı şeyler:
-Bir maçın ve maç olmamasının olasılığı 1'e kadar olmalıdır, bu yüzden P(match)=1−P(no match) ve tam tersi.
-İki bağımsız etkinlik için A ve B, olasılığı P(A&B)=P(A)⋅P(B).
Cevabı almak için, sabit sayıda dizeyle eşleşme görmeme olasılığını hesaplayarak başlayacağız k. Bunu nasıl yapacağımızı öğrendikten sonra, bu denklemi eşik değerine (1 / 100.000) eşit olarak ayarlayabilir vek. Kolaylık sağlamak için arayalımN olası dizelerin sayısı (6220).
Listede 'yürüyeceğiz' ve k^ {th} dizesi, listedeki "yukarıda" dizelerden herhangi biriyle eşleşir. İlk dizi için,N Toplam dizeler ve listede hiçbir şey yok, yani Pk=1(no match)=NN=1. İkinci dize için hala varN toplam olasılıklar, ancak bunlardan biri ilk dize tarafından "kullanıldı", bu nedenle bu dize için bir eşleşme olasılığı Pk=2(no match)=N−1N Üçüncü dize için, bir eşleşme için iki yol vardır ve bu nedenle N−2 yapmamak için yollar Pk=3(no match)=N−2Nve bunun gibi. Genel olarak,kdiğerleriyle uyuşmayan dize
Pk(no match)=N−k+1N
Ancak, herhangi biri arasında eşleşme olmaması kTeller. Tüm olaylar bağımsız olduğundan (soru başına), bu olasılıkları birlikte çoğaltabiliriz, şöyle:
P(No Matches)=NN⋅N−1N⋅N−2N⋯N−k+1N
Bu biraz basitleştirilebilir:
P(No Matches)P(No Matches)P(No Matches)=N⋅(N−1)⋅(N−2)⋯(N−k+1)Nk=N!Nk⋅(N−k)!=k!⋅(Nk)Nk
İlk adım kesirleri birlikte çarpar, ikincisi faktöriyel (
k!=(k)⋅(k−1)⋅(k−2)⋯1) ürünlerini değiştirmek için
N−k+1⋯Nbiraz daha yönetilebilir bir şeyle ve son adım bir binom katsayısında değişiyor. Bu bize, oluşturduktan sonra hiç eşleşme olmaması olasılığı için bir denklem verir.
kTeller. Teorik olarak,
1100,000 ve çözmek
k. Pratikte, çok sayıda ile çarpacağınız / böleceğiniz için bir cevap vermek zor olacak - faktöriyeller gerçekten hızlı büyüyor (
100! 150 basamaktan uzun).
Bununla birlikte, hem faktöriyeli hesaplamak hem de tüm problem için yaklaşımlar vardır. Bu makale [2]
k=0.5+0.25−2Nln(p)−−−−−−−−−−−−√
burada p bir eşleşme görmeme olasılığıdır. Testleri azami
N=48,000, ama yine de oldukça doğru. Numaralarınızı taktığınızda, yaklaşık olarak
3.7⋅1015.
Referanslar
[1] http://en.wikipedia.org/wiki/Birthday_problem
[2] Mathis, Frank H. (Haziran 1991). "Genelleştirilmiş Doğum Günü Sorunu". SIAM Dergisi (Endüstriyel ve Uygulamalı Matematik Topluluğu) 33 (2): 265-270. JSTOR Bağlantısı