Zakładając „całkowitą losowość” i ciąg o długości 20 znaków, przy czym każdy znak może być jednym z 62 możliwych znaków:
- Jaka jest łączna liczba możliwych kombinacji? (Zgadywanie 20 do potęgi 62.)
- Ponadto, jeśli nowe ciągi są losowo wybierane jeden po drugim i dodawane do listy wybranych do tej pory ciągów, to ile ciągów należy wybrać, zanim szansa na wybranie już zaznaczonego ciągu jest mniejsza niż 1 na 100000 ( )?
Uwaga: 62 pochodzi od: cyfr (0-9), wielkich liter (AZ) i małych liter (az).
probability
combinatorics
błędy
źródło
źródło
Odpowiedzi:
Całkowita liczba możliwości
1) Zamknij! Masz 62 opcje dla pierwszego znaku, 62 dla drugiego itd., Więc otrzymujesz , co jest absurdalnie dużą liczbą.62⋅62⋅62⋅⋯62=6220
Zderzenie z ciągiem „docelowym”
2) Jak ustaliliśmy powyżej, istnieje potencjalnych ciągów. Chcesz wiedzieć, ile trzeba odgadnąć, aby mieć więcej niż 1 na 100 000 szans na odgadnięcie ciągu „docelowego”. Zasadniczo pytasz, co Aby to zrobić, musisz zaokrąglić x w górę (lub dodać jeden, jeśli są dokładnie równe), ale jak zobaczysz za sekundę, to tak naprawdę nie ma znaczenia.6220
Za pomocą podstawowej algebry możemy zmienić to ustawienie jako
Robienie matematyki, to około , więc nazwijmy to wszystko lub, bardziej zwięźle, cholernie dużo.6.220 7⋅1015 7⋅1030
Dlatego oczywiście długie hasła działają naprawdę dobrze :-) W przypadku prawdziwych haseł należy oczywiście martwić się ciągami o długości mniejszej lub równej dwadzieścia, co jeszcze bardziej zwiększa liczbę możliwości.
Duplikaty na liście
Teraz rozważmy inny scenariusz. Ciągi są generowane losowo i chcemy ustalić, ile można wygenerować, zanim będzie szansa 1: 100 000 na dopasowanie dwóch ciągów. Klasyczna wersja tego problemu nazywa się Problemem Urodzinowym (lub „Paradoksem”) i pyta, jakie jest prawdopodobieństwo, że dwie spośród n osób mają te same urodziny. Artykuł w Wikipedii [1] wygląda przyzwoicie i zawiera kilka tabel, które mogą okazać się przydatne. Niemniej jednak postaram się dać ci smak odpowiedzi tutaj.
Kilka rzeczy, o których należy pamiętać:
- Prawdopodobieństwo dopasowania i braku dopasowania musi 1, więc i odwrotnie.P(match)=1−P(no match)
-W przypadku dwóch niezależnych zdarzeń i prawdopodobieństwo .A B P(A&B)=P(A)⋅P(B)
Aby uzyskać odpowiedź, zaczniemy od obliczenia prawdopodobieństwa nie znalezienia dopasowania dla określonej liczby ciągów . Kiedy już wiemy, jak to zrobić, możemy ustawić to równanie na wartość progową (1/100 000) i rozwiązać dla . Dla wygody nazwijmy liczbą możliwych ciągów znaków ( ).k k N 6220
Będziemy „chodzić” po liście i obliczać prawdopodobieństwo, że ciąg ^ {th} pasuje do dowolnego ciągu „powyżej” na liście. Dla pierwszego ciągu mamy całkowitą liczbę ciągów i nic na liście, więc . W przypadku drugiego ciągu wciąż istnieje całkowitych możliwości, ale jedno z nich zostało „wykorzystane” przez pierwszy ciąg, więc prawdopodobieństwo dopasowania dla tego ciągu wynosi W przypadku trzeciego ciągu istnieją dwa sposoby dopasowania, a zatem sposoby, aby tego nie , więc i tak dalej. Zasadniczo prawdopodobieństwok N Pk=1(no match)=NN=1 N Pk=2(no match)=N−1N N−2 Pk=3(no match)=N−2N k ciąg nie pasujący do pozostałych to
Chcemy jednak prawdopodobieństwa braku dopasowania między dowolnymi ciągami . Ponieważ wszystkie zdarzenia są niezależne (na pytanie), możemy po prostu pomnożyć te prawdopodobieństwa razem, tak jak to: Można to trochę uprościć: W pierwszym kroku po prostu mnoży się ułamki, w drugim stosuje się definicję silni ( ), aby zastąpić produktyk
Istnieją jednak przybliżenia, zarówno do obliczania silni, jak i do całego problemu. Ten artykuł [2] sugeruje gdzie p jest prawdopodobieństwem braku dopasowania. Jego testy osiągnęły maksimum przy , ale nadal są dość dokładne. Po podłączeniu twoich liczb otrzymuję około .
Bibliografia
[1] http://en.wikipedia.org/wiki/Birthday_problem
[2] Mathis, Frank H. (czerwiec 1991). „Ogólny problem urodzinowy”. Przegląd SIAM (Society for Industrial and Applied Mathematics) 33 (2): 265–270. JSTOR Link
źródło