文字列の長さと可能な文字に基づく簡単な組み合わせ/確率の質問


9

「完全なランダム性」を想定し、各文字が62の可能な文字の1つである可能性がある20文字の長さの文字列が与えられた場合:

  • 可能な組み合わせの総数はいくつですか?(20の62乗を推測します。)
  • また、新しい文字列が次々とランダムに選択され、これまでに選択された文字列のリストに追加された場合、すでに選択されている文字列を選択する機会が1-in-100000()?105

注: 62の由来は、数字(0-9)、大文字(AZ)、および小文字(az)です。


2
2番目の箇条書きは、(少なくとも)2つの可能な方法で読み取ることができます。私は、あなたが興味を持っているいると思いまして。(1)確率番目の文字列は、以前の文字列のいずれか(一致した2時間であること)確率番目の文字列が選択されているが存在するいくつかのコレクション内の重複をこれまでに描かれた文字列の。これら2つの質問に対する答えは大きく異なります。:)nnn
枢機卿の

1
おそらく、2文字のアルファベットを検討すると、違いが明確になります。文字をおよびます。私たちは尋ねることができます:(1何のために)行う我々の少なくとも99%の確率で持っている前の文字列の重複している番目の文字列?ここでのは8です。これは、シーケンスがまたはであり、合計確率がある場合にのみ失敗するためです。それとも、我々は(尋ねる2を何のために)我々はいくつかの重複を見ての少なくとも99%のチャンスがあるのですか?この場合、3つの文字列が表示されるまでに、なります。T n n n T T T T H H H H H T 2 n 1 n n = 3 H THTnnnTTTTHHHHHT2(n1)nn=3Hまたはが少なくとも1回繰り返されている。T
枢機卿、

1
Mattの回答ハンドル(1)は、「私の」文字列が他の誰かの文字列と一致するかどうかに関する質問に本質的に回答します。ただし、他の2人の文字列一致する可能性があることが心配な場合は、(2)に興味があります。それは、他のすべての文字列と比較する対象の特定の文字列があるかどうか、またはすべての文字列を相互に比較するかどうかにかかっています。それをもっと明確にしているかどうかはわかりませんが。(あなたの問題は、有名ないわゆる「誕生日問題」の2つの変形のうちの1つに要約されます。)
枢機卿

1
枢機卿は、いつものように、正しいです。私はあなたが推測のリストを生成していた1つの「ターゲット」文字列があると仮定しました。代わりに、ランダムに文字列を生成していて、2つの文字列が一致する前に安全に生成できる数を知りたい場合、答えはまったく異なります。よろしければ、このケースに対処するために私の回答を修正します。
Matt Krause

1
前の例を完全に明確にすることはしませんでした。申し訳ありません。私は2文字のアルファベットを考え、長さがoneの文字列を描画していました。したがって、私がを書いたとき{H,T}、それは s 1 = H s 2 = H、...、 s n 1 = H s n = Tを意味していましたHHHHTs1=Hs2=Hsn1=Hsn=T
枢機卿、

回答:


11

可能性の総数

1)閉じる!あなたがで終わるようにするには、など、第二のための最初の文字、62のための62個の選択肢を持っている、ばかばかしいほど膨大な数です。62626262=6220

「ターゲット」文字列との衝突

2)上記で確立したように、潜在的なストリングがあります。「ターゲット」文字列を推測する確率が100,000分の1を超えると推測するのに必要な数を知りたいとします。基本的に、あなたは何を求めているのxを6220スポットを当てるには、xを切り上げる(または、正確に等しい場合は1を加える)必要がありますが、すぐにわかるように、それは重要ではありません。

x62201105

基本的な代数を通して、それを

105x6220105x(6.210)20105x6.2201020x6.2201015

数学をやって、程度である7 10 15、それでは全部呼んでみましょう7 10 30より簡潔または、たくさんの全体の一体を。6.2207101571030

これが、もちろん、長いパスワードが本当にうまく機能する理由です:-)もちろん、実際のパスワードの場合、20文字以下の長さの文字列を心配する必要があります。

リスト内の重複

それでは、他のシナリオについて考えてみましょう。文字列はランダムに生成されます。2つの文字列が一致する確率が1:100,000になる前に生成できる数を決定します。この問題のクラシックバージョンは誕生日問題(または「パラドックス」)と呼ばれ、n人のうち2人が同じ誕生日をとる確率を尋ねます。ウィキペディアの記事[1]はまともな見た目で、役に立つと思われる表がいくつかあります。それでも、ここでも答えの味をお伝えできるように努力します。

覚えておくべきいくつかのこと:

-一致する確率と一致しない確率は合計で1になる必要があるため、あり、その逆も同様ですP(match)=1P(no match)

二つの独立したイベント-for およびBの確率P A B = P A P B ABP(A&B)=P(A)P(B)

答えを得るために、固定数の文字列一致が見られない確率を計算することから始めます。その方法がわかったら、その方程式をしきい値(1 / 100,000)に設定し、kを解くことができます。便宜上、Nを可能な文字列の数(62 20)と呼びます。kkN6220

リストを「ウォーク」して、 ^ {th}文字列がリスト内の「上の」文字列のいずれかに一致する確率を計算します。最初の文字列については、合計N個の文字列があり、リストには何もないため、P k = 1一致なし= NkN。2番目の文字列については、合計N個の可能性がありますが、そのうちの1つは最初の文字列によって「使い果たされ」ているため、この文字列の一致確率はPk=2一致なし=N1です。Pk=1(no match)=NN=1N 3番目の文字列の場合、一致する2つの方法があるため、N-2の方法では一致しないため、Pk=3一致なし=N-2Pk=2(no match)=N1NN2など。一般に、k番目の文字列が他と一致しない確率は、Pk一致なし=Nk+1です。Pk=3(no match)=N2Nk

Pk(no match)=Nk+1N

k

P(No Matches)=NNN1NN2NNk+1N
P(No Matches)=N(N1)(N2)(Nk+1)NkP(No Matches)=N!Nk(Nk)!P(No Matches)=k!(Nk)Nk
k!=(k)(k1)(k2)1Nk+1Nk1100,000k100!

ただし、階乗の計算と問題全体の両方について、近似があります。この論文[2]は示唆しています

k=0.5+0.252Nln(p)
N=48,0003.71015

参考文献

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

[2]マティス、フランクH.(1991年6月)。「一般的な誕生日問題」。SIAMレビュー(産業および応用数学学会)33(2):265–270。JSTORリンク


+1すばらしい、数学のスキルが低いために質問をする結果となったので、質問は1日未回答のままにしておきますが、私には良さそうで、予想よりもはるかに明確な回答になりました。ありがとうございます。
失敗

1
助けてくれてうれしい!不明な点がある場合はお知らせください。キックのために、私は数字を実行しました。7044234255469980229683302646164の推測が必要です。私が言ったように-たくさん!
Matt Krause、2012年

+1 @Matt Krause:回答の下のコメントに+1。可能な限り最良の答えを提供するというあなたの答えと責任は模範的であり、注目に値します。そしてあなたのハードワークのすべてに感謝します!
失敗
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.