什么是python中标准随机数生成器的Big-O运行时? (最糟糕的情况)

时间:2015-04-05 20:19:53

标签: python algorithm random big-o

示例python2代码:

for i in range(N):
    print str(random.randint(0, N))

假设随机数发生器在O(1)中运行是否安全,以便上述循环(简单地打印0到N范围内的N个随机数)是O(N)?

1 个答案:

答案 0 :(得分:0)

random.randint(0, N)可能是O(log N),即它与N中的位数成比例。

The implementation confirms it如果我们假设.getrandbits(k)O(k)

如果genrand_int32()O(1),则

It seems to be true for CPythonThe source (for Mersenne Twister PRNG implementation) suggests that it is