【发布时间】:2013-06-19 02:50:15
【问题描述】:
我这里有一个函数,它返回一个 4 位数的字符串。问题是当我运行该函数 500 次或更多时,它开始返回重复项。如何避免?
我的功能:
import random
def CreatePass():
Num = str(random.randint(1000, 9999)
return Num
【问题讨论】:
-
随机函数通常没有不返回重复项的约束。它们只能是随机的。您必须自己实现该功能。
-
@KingMak 就因为你年轻,你不能免于逻辑。
-
令人震惊的是,从 8999 个元素中选择一个元素 500 次时发生碰撞的几率为 5.6%。结合伪随机选择的局限性,我想知道为什么会发生这种情况!
-
公平地说。 OP 正在询问如何避免重复 - 他们并没有对此表示惊讶。对我来说,这似乎是一个完全合理的问题。
-
哈哈,好吧,化身是一块磁铁,我承认。但@King 是绝对正确的:所有这些反对票和没有人(还)费心说出原因。