如果你有一个随机生成的密码,只包含长度为12的字母数字字符,并且比较不区分大小写(即'A'=='a'),那么长度为3的特定字符串的概率是多少(例如'ABC')会出现在该密码中吗?
我知道总可能组合的数量是(26 + 10)^ 12,但除此之外,我有点迷失。对数学的解释也是最有帮助的。
答案 0 :(得分:8)
字符串“abc”可以出现在第一个位置,使字符串看起来像这样:
abcXXXXXXXXX
...... X可以是任何字母或数字。有(26 + 10)^ 9个这样的字符串。
它可以出现在第二个位置,使字符串看起来像:
XabcXXXXXXXX
还有(26 + 10)^ 9个这样的字符串。
由于“abc”可以出现在从第1个位置到第10个位置的任何位置,因此有10 * 36 ^ 9个这样的字符串。
但这超过了,因为它计算了(例如)两次这样的字符串:
abcXXXabcXXX
所以我们需要像这样计算所有字符串并将它们从总数中减去。
由于此模式中有6个X,因此有36 ^ 6个字符串与此模式匹配。
我得到7 + 6 + 5 + 4 + 3 + 2 + 1 = 28这样的模式。 (如果第一个“abc”在开头,第二个可以在7个位置中的任何一个。如果第一个“abc”在第二个位置,第二个可以在6个位置中的任何一个。依此类推。)< / p>
因此减去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。如果我在计算中出错,请告诉我。
答案 1 :(得分:0)
如果A
不等于C
,则P(n)
的概率ABC
出现在长度为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
答案 2 :(得分:-2)
扩展Paul R的答案。概率(对于同样可能的结果)是您的事件可能结果的数量除以可能结果的总数。
有10个可能的地方,长度为3的字符串可以在长度为12的字符串中找到。还有9个点可以用任何其他字母数字字符填充,这导致36^9
种可能性。因此,您的活动的可能结果数量为10 * 36^9
。
除以您的总结果数36^12
。你的答案是10 * 36^-3 = 0.000214
编辑:这不完全正确。在这个解决方案中,有些案例是双重计算的。然而,它们只对概率产生非常小的贡献,因此这个答案仍然是正确的,最多可达11位小数。如果您想要完整的答案,请参阅Nemo的答案。