2011-07-22 74 views
7

如果您的隨機生成的密碼僅包含字母數字字符,長度爲12,且比較不區分大小寫(即'A'=='a') ,那麼一個特定的長度爲3的字符串(例如'ABC')將出現在該密碼中的概率是多少?隨機生成的密碼中出現3個字符的字符串的概率

我知道可能的組合總數是(26 + 10)^ 12,但除此之外,我有點迷路。對數學的解釋也是最有幫助的。

+1

同樣在此問題屬於'http:// math.stackexchange.com /' – Caner

回答

8

字符串「abc」可以出現在第一的位置,使該字符串是這樣的:

abcXXXXXXXXX 

...其中x可以是任意字母或數字。有(26 + 10)^ 9這樣的字符串。

它可以出現在第二位置時,使該字符串看起來像:

XabcXXXXXXXX 

而且有(26 + 10)^ 9個這樣的字符串也。

由於「abc」可以出現在第一到第十位的任何地方,所以有10 * 36^9個這樣的字符串。

但這overcounts,像這樣因爲它計算(例如)字符串兩次:

abcXXXabcXXX 

因此,我們需要計算所有這樣的字符串和減去它們趕走我們總的。

由於此模式中有6個X,所以有36^6個字符串匹配此模式。

我得到7 + 6 + 5 + 4 + 3 + 2 + 1 = 28這樣的模式。 (如果第一個「abc」在開頭,第二個可以在7個地方中的任何一個,如果第一個「abc」在第二個地方,第二個可以在6個地方中的任何一箇中,依此類推)

因此減去28 * 36^6。

...但減去了太久,因爲它扣除掉串這樣的三倍,而不僅僅是一次:

abcXabcXabcX 

所以我們加回像這樣的字符串,兩次。我得到4 + 3 + 2 + 1 + 3 + 2 + 1 + 2 + 1 + 1 =這些圖案的20,這意味着我們必須添加回去2 * 20 *(36^3)。

但是數學計算這個字符串四次:

abcabcabcabc 

......所以我們必須減去關閉3

最終的答案:

10*36^9 - 28*36^6 + 2*20*(36^3) - 3 

除以36^12得到你的概率。

又見Inclusion-Exclusion Principle。如果我在計算中犯了錯誤,請告訴我。

+0

你說得對。謝謝。 – jason

+0

@Jason:謝謝。對不起,如果我的意見有點激烈。現在我只是想知道誰低估了我:-)。另外,我認爲你應該取消刪除你的回答,並像tskuzzy那樣在最後提出一個聲明。我認爲你的方法比其他方法更準確,而且肯定比完整分析更簡單。 – Nemo

+0

'28 * 10^6'應該是'28 * 36^6'。 –

-2

擴展Paul R的答案。概率(對於相同可能的結果)是事件可能結果的數量除以可能結果的總數。

有10個可能的位置,其中長度爲3的字符串可以在長度爲12的字符串中找到。還有9個可以填充任何其他字母數字字符的點,這導致了36^9的可能性。因此,您的活動的可能結果數量爲10 * 36^9

除以您的結果總數36^12。你的回答是10 * 36^-3 = 0.000214

編輯:這是不完全正確的。在這個解決方案中,有些情況被重複計算。然而,它們只對概率形成很小的貢獻,所以這個答案在小數點後11位仍然是正確的。如果你想要完整的答案,請參閱尼莫的答案。

+1

這是不正確的。請參閱我對@ Paul的答案的評論。 – Nemo

+0

@Nemo:感謝您指出錯誤。我會再考慮一下。 – tskuzzy

+0

對不起,我想我做了一個無效的推論:-) – Nemo

0

如果A不等於CABC發生的文化在長度n的字符串的概率P(n)(假設每字母數字符號是同等可能的)是

P(n)=P(n-1)+P(3)[1-P(n-3)] 

其中

P(0)=P(1)=P(2)=0 and P(3)=1/(36)^3