Общее количество возможностей
1) Закрыть! У вас есть 62 вариантов для первого символа, 62 для 2 - го и т.д., так что вы в конечном итоге с , что абсурдно огромное количество.62⋅62⋅62⋅⋯62=6220
Столкновение со строкой «Target»
2) Как мы установили выше, существует потенциальных строк. Вы хотите знать, сколько вам нужно угадать, чтобы иметь больше, чем 1 на 100 000 шансов угадать «целевую» строку. По сути, вы спрашиваете, что х6220 Чтобы получить точный результат, вам нужно округлить х (или добавить один, если они точно равны), но, как вы увидите через секунду, это не имеет значения.
x6220≥1105
Посредством базовой алгебры мы можем изменить это как
105x105x105xx≥6220≥(6.2⋅10)20≥6.220⋅1020≥6.220⋅1015
6.2207⋅10157⋅1030
Именно поэтому длинные пароли работают очень хорошо :-) Для реальных паролей, конечно, вам нужно беспокоиться о строках длиной не более двадцати, что увеличивает количество возможностей еще больше.
Дубликаты в списке
Теперь давайте рассмотрим другой сценарий. Строки генерируются случайным образом, и мы хотим определить, сколько можно сгенерировать до того, как появится шанс совпадения любых двух строк 1: 100 000. Классическая версия этой проблемы называется проблемой дня рождения (или «парадоксом») и спрашивает, какова вероятность того, что двое из n человек имеют одинаковый день рождения. Статья в Википедии [1] выглядит прилично и содержит несколько таблиц, которые могут оказаться полезными. Тем не менее, я постараюсь дать вам ответ на этот вопрос здесь.
Некоторые вещи, которые нужно иметь в виду:
P(match)=1−P(no match)
ABP(A&B)=P(A)⋅P(B)
kkN6220
kNPk=1(no match)=NN=1NPk=2(no match)=N−1NN−2Pk=3(no match)=N−2Nk
Pk(no match)=N−k+1N
k
P(No Matches)=NN⋅N−1N⋅N−2N⋯N−k+1N
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
k!=(k)⋅(k−1)⋅(k−2)⋯1N−k+1⋯Nk1100,000k100!
k=0.5+0.25−2Nln(p)−−−−−−−−−−−−√
N=48,0003.7⋅1015
Ссылки
[1] http://en.wikipedia.org/wiki/Birthday_problem
[2] Матис, Фрэнк Х. (июнь 1991 г.). «Обобщенная проблема дня рождения». SIAM Review (Общество по промышленной и прикладной математике) 33 (2): 265–270. JSTOR Ссылка