Supondo "aleatoriedade completa" e com uma sequência de 20 caracteres, em que cada caractere pode ser um dos 62 caracteres possíveis:
- Qual é o número total de combinações possíveis? (Adivinhando 20 ao poder de 62.)
- Além disso, se novas sequências de caracteres forem selecionadas aleatoriamente uma após a outra e adicionadas a uma lista de sequências de caracteres selecionadas até agora, quantas sequências de caracteres devem ser selecionadas antes que a chance de selecionar uma sequência que já tenha sido selecionada esteja abaixo de 1 em 100000 ( )?
Nota: 62 vem de: dígitos numéricos (0 a 9), letras maiúsculas (AZ) e letras minúsculas (az).
probability
combinatorics
erros
fonte
fonte
Respostas:
Número total de possibilidades
1) Fechar! Você tem 62 opções para o primeiro caractere, 62 para o 2º, etc., então você acaba com , que é um número absurdamente grande.62⋅62⋅62⋅⋯62=6220
Colisão com uma String "Target"
2) Como estabelecemos acima, existem cadeias em potencial. Você quer saber quantas precisaria adivinhar para ter mais de 1 em 100.000 chances de adivinhar a sequência "alvo". Essencialmente, você está perguntando o que Para deixar claro, você teria que arredondar x para cima (ou adicionar um, se forem precisamente iguais), mas como você verá em um segundo, isso realmente não importa.6220
Através da álgebra básica, podemos reorganizar isso como
Fazendo as contas, é de cerca de , então vamos chamar a coisa toda de ou, mais sucintamente, um monte de coisas.6.220 7⋅1015 7⋅1030
É por isso que as senhas longas funcionam muito bem :-) Para senhas reais, é claro, você precisa se preocupar com cadeias de comprimento menores ou iguais a vinte, o que aumenta ainda mais o número de possibilidades.
Duplicatas na lista
Agora, vamos considerar o outro cenário. As strings são geradas aleatoriamente e queremos determinar quantas podem ser geradas antes que exista uma chance de 1: 100.000 de quaisquer duas strings correspondentes. A versão clássica desse problema é chamada de Problema de Aniversário (ou 'Paradoxo') e pergunta qual é a probabilidade de duas de n pessoas terem o mesmo aniversário. O artigo da wikipedia [1] parece decente e possui algumas tabelas que você pode achar úteis. No entanto, vou tentar dar a você o sabor da resposta aqui também.
Algumas coisas a ter em mente:
-A probabilidade de uma correspondência e de não haver correspondência deve somar 1, então e vice-versa.P(match)=1−P(no match)
-Para dois eventos independentes e , a probabilidade de .A B P(A&B)=P(A)⋅P(B)
Para obter a resposta, começaremos calculando a probabilidade de não encontrar uma correspondência para um número fixo de cadeias . Uma vez que sabemos como fazer isso, podemos definir essa equação igual ao limite (1 / 100.000) e resolver para . Por conveniência, vamos chamar o número de sequências possíveis ( ).k k N 6220
Nós vamos 'andar' pela lista e calcular a probabilidade de que a string ^ {th} corresponda a qualquer uma das strings "acima" dela na lista. Para a primeira string, temos strings totais e nada na lista, então . Para a segunda sequência, ainda existem possibilidades totais, mas uma delas foi "usada" pela primeira, portanto, a probabilidade de uma correspondência para essa sequência é Para a terceira sequência, há duas maneiras de uma correspondência e, portanto, não, portanto e assim por diante. Em geral, a probabilidade dok N Pk=1(no match)=NN=1 N Pk=2(no match)=N−1N N−2 Pk=3(no match)=N−2N k késima sequência que não corresponde às outras é
No entanto, queremos a probabilidade de não haver correspondência entre nenhuma das strings. Como todos os eventos são independentes (de acordo com a pergunta), podemos apenas multiplicar essas probabilidades juntas, assim: Isso pode ser simplificado um pouco: O primeiro passo apenas multiplica as frações, o segundo usa a definição de fatorial ( ) para substituir os produtos dek
No entanto, existem aproximações, tanto para calcular o fatorial quanto para todo o problema. Este artigo [2] sugere onde p é a probabilidade de não encontrar uma correspondência. Seus testes atingem o máximo de , mas ainda é bastante preciso lá. Conectando seus números, recebo aproximadamente .
Referências
[1] http://en.wikipedia.org/wiki/Birthday_problem
[2] Mathis, Frank H. (junho de 1991). "Um problema generalizado de aniversário". Revisão do SIAM (Sociedade de Matemática Industrial e Aplicada) 33 (2): 265–270. Link JSTOR
fonte