Question de combinaison / probabilité simple basée sur la longueur de la chaîne et les caractères possibles

9

En supposant un "caractère aléatoire complet" et une chaîne de 20 caractères, chaque caractère pouvant être l'un des 62 caractères possibles:

  • Quel est le nombre total de combinaisons possibles? (Deviner 20 à la puissance de 62.)
  • De plus, si de nouvelles chaînes sont sélectionnées au hasard les unes après les autres et ajoutées à une liste de chaînes sélectionnées jusqu'à présent, le nombre de chaînes qui doivent être sélectionnées avant que la chance de sélectionner une chaîne qui a déjà été sélectionnée soit inférieur à 1 sur 100000 ( dix-5 )?

Remarque: 62 provient de: chiffres numériques (0-9), lettres majuscules (AZ) et lettres minuscules (az).

bévues
la source
2
Votre deuxième puce peut être lue (au moins) de deux manières possibles. Je me demande ce qui vous intéresse. ( 1 ) La probabilité que la ème chaîne corresponde à l'une des chaînes précédentes ou ( 2 ) La probabilité qu'au moment où la n ème chaîne est sélectionnée, il existe des doublons dans la collection de cordes tirées jusqu'à présent. Les réponses à ces deux questions seront très différentes. :)nn
cardinal
1
Peut-être que la considération d'un alphabet à deux caractères fera la différence. Que les lettres soient et T . Nous pouvons demander: ( 1 ) Pour quel n avons-nous au moins 99% de chances que la n ème chaîne soit un doublon d'une chaîne précédente? Le n ici est 8 puisque la seule façon dont nous échouons est si notre séquence est soit T T T T H ou H H H H T , qui a une probabilité totale de 2 - ( n - 1 ) . Ou, nous demandons ( 2 ) pour quoiHTnnnTTTTHHHHHT2-(n-1) -nous avons au moins une chance99% de voir une double? Dans ce cas, n = 3, car au moment où nous avons vu trois chaînes, H ou T a été répété au moins une fois. nn=3HT
Cardinal
1
La réponse de Matt gère ( 1 ), ce qui répond essentiellement à la question de savoir si "ma" chaîne correspond à celle de quelqu'un d'autre. Mais, si vous êtes inquiet au sujet des deux autres cordes de gens aussi potentiellement correspondant, alors vous êtes intéressé par ( 2 ). Cela revient à savoir si vous avez une chaîne d'intérêt particulière à laquelle vous comparez toutes les autres ou si vous comparez toutes les chaînes les unes aux autres. Je ne suis pas sûr de clarifier cela, cependant. (Votre problème se résume à l'une des deux variantes du fameux "problème d'anniversaire".)
Cardinal
1
Le cardinal a, comme d'habitude, raison. J'ai supposé que vous aviez une chaîne "cible", pour laquelle vous génériez une liste de suppositions. Si au lieu de cela, vous générez des chaînes au hasard et que vous voulez connaître le nombre qu'il est sûr de générer avant que deux chaînes ne correspondent, alors la réponse est très différente. Je modifierai ma réponse pour répondre à cette affaire, si cela vous convient.
Matt Krause
1
Je n'ai pas précisé clairement mon exemple précédent. Désolé pour ça. Je pensais à un alphabet à deux lettres et dessinais des chaînes de longueur un . Par conséquent, lorsque j'ai écrit H H H H T , qui se trouvait à s 1 = H , s 2 = H , ..., s n - 1 = H , s n = T . {H,T}HHHHTs1=Hs2=Hsn-1=Hsn=T
cardinal

Réponses:

11

Nombre total de possibilités

1) Fermez! Vous avez 62 choix pour le premier personnage, 62 pour le 2e, etc., vous vous retrouvez donc avec , ce qui est un nombre absurdement énorme.62626262=6220

Collision avec une chaîne "cible"

2) Comme nous l'avons établi ci-dessus, il existe chaînes potentielles. Vous voulez savoir combien vous devez deviner pour avoir plus de 1 chance sur 100 000 de deviner la chaîne "cible". Essentiellement, vous demandez ce que x6220 Pour être clair, il faudrait arrondir x (ou en ajouter un, s'ils sont exactement égaux), mais comme vous le verrez dans une seconde, cela n'a pas vraiment d'importance.

X62201dix5

Grâce à l'algèbre de base, nous pouvons réorganiser cela comme

dix5X6220dix5X(6.2dix)20dix5X6.220dix20X6.220dix15

Pour faire le calcul, est environ 7 × 10 15 , alors appelons le tout 7 × 10 30 ou, plus succinctement, beaucoup.6.2207dix157dix30

C'est, bien sûr, pourquoi les mots de passe longs fonctionnent très bien :-) Pour les vrais mots de passe, bien sûr, vous devez vous soucier des chaînes de longueur inférieure ou égale à vingt, ce qui augmente encore plus le nombre de possibilités.

Doublons dans la liste

Maintenant, considérons l'autre scénario. Les chaînes sont générées de façon aléatoire et nous voulons déterminer combien peuvent être générées avant qu'il y ait une chance de 1/100 000 de faire correspondre deux chaînes. La version classique de ce problème est appelée le problème d'anniversaire (ou «paradoxe») et demande quelle est la probabilité que deux personnes sur n aient le même anniversaire. L'article de wikipedia [1] semble décent et contient des tableaux qui pourraient vous être utiles. Néanmoins, je vais essayer de vous donner la saveur de la réponse ici aussi.

Quelques points à garder à l'esprit:

-La probabilité d'un match et de ne pas avoir de match doit être égale à 1, donc et vice versa.P(rencontre)=1-P(aucune concordance)

-Pour deux événements indépendants et B , la probabilité de P ( A & B ) = P ( A ) P ( B ) .UNEBP(UNE&B)=P(UNE)P(B)

Pour obtenir la réponse, nous allons commencer par calculer la probabilité de ne pas voir de correspondance pour un nombre fixe de chaînes . Une fois que nous savons faire cela, nous pouvons définir cette équation égale au seuil (1/100 000) et résoudre pour k . Pour plus de commodité, appelons N le nombre de chaînes possibles ( 62 20 ).kkN6220

kNPk=1(aucune concordance)=NN=1NPk=2(aucune concordance)=N-1NN-2Pk=3(aucune concordance)=N-2Nk

Pk(aucune concordance)=N-k+1N

k

P(Pas de correspondance)=NNN-1NN-2NN-k+1N
P(Pas de correspondance)=N(N-1)(N-2)(N-k+1)NkP(Pas de correspondance)=N!Nk(N-k)!P(Pas de correspondance)=k!(Nk)Nk
k!=(k)(k-1)(k-2)1N-k+1Nk1100,000k100!

k=0,5+0,25-2Nln(p)
N=48,0003.7dix15

Références

[1] http://en.wikipedia.org/wiki/Birthday_problem

[2] Mathis, Frank H. (juin 1991). "Un problème d'anniversaire généralisé". SIAM Review (Society for Industrial and Applied Mathematics) 33 (2): 265-270. Lien JSTOR

Matt Krause
la source
+1 Génial, étant donné que mes faibles compétences en mathématiques ont conduit à poser la question, je vais donc laisser la question sans réponse pendant une journée, mais cela me semble bien et est beaucoup plus clair que je ne le pensais - merci!
bévues
1
Heureux de vous aider! Faites-moi savoir si quelque chose n'est pas clair. Pour les coups de pied, j'ai couru les chiffres. Vous aurez besoin de 7044234255469980229683302646164 suppositions; comme je l'ai dit - beaucoup!
Matt Krause
+1 @Matt Krause: +1 à votre commentaire sous la réponse; votre réponse et votre engagement à donner la meilleure réponse possible sont exemplaires, dignes de mention, et merci pour tout votre travail acharné!
bévue