python中的random.sample被重复生成序列的概率是多少?

时间:2017-08-31 12:10:40

标签: python random probability

我使用以下代码段生成随机字符

char_set = string.ascii_letters + string.digits
Randomno=''.join(random.sample(char_set*10,9))

1 个答案:

答案 0 :(得分:3)

唯一值的总数应为62 ^ 9(1.3537087e + 16)

符号数量^长度。

"用于无需替换的随机抽样"所以我以前的数学是不正确的,因为字符不能在给定的样本中重复。

匹配任何序列的机会在62 ^ 9次运行后是100%,匹配特定序列的机会倾向于,但是当运行次数增加时从未达到100%,因为您永远不能保证获得任何特定序列序列

从评论中添加我的想法:

随机使用marsenne twister:http://en.wikipedia.org/wiki/Mersenne_Twister,根据其wiki页面非常强大。 http://docs.python.org/3.1/library/random.html根据文档随机不应用于加密目的。这是有道理的,因为MT是完全确定性的并且给出初始参数并且看到可以再现相同的序列。