CPU和墙时间中的Python内存错误

CPU和墙时间中的Python内存错误,python,Python,我尝试使用一个函数来计算三个变量的模指数,并在以下情况下比较CPU和墙壁时间: e=2^n and e=2^n-1 这是我的密码: from random import choice import random def question_3(m,n): list = [] for i in range(2,2**m): flag=True for num in list: if(i%num==0):

我尝试使用一个函数来计算三个变量的模指数,并在以下情况下比较CPU和墙壁时间:

e=2^n and e=2^n-1
这是我的密码:

from random import choice
import random
def question_3(m,n):
    list = []
    for i in range(2,2**m):
        flag=True
        for num in list:
            if(i%num==0):
                flag=False
        if(flag):
            list.append(i)
            p = choice(list)
            a = randint(1,int(p)-1) 
            e = pow(2,n)
    return pow(a,e,p)
time t = question_3(150,100)
但当我输入m和n时,它会给我:

range() result has too many items

这是因为您正在强制
range
生成太多数据。例如,
range(2,2*1234567891011)
将生成长度为
2*1234567891011-2
的列表,这不是有点太多了吗

请尝试使用
xrange()
,它会在需要时生成数据,而不是在调用时生成所有数据

将其更改为:

for i in xrange(2,2**m):
看起来很简单,但有很大的区别。希望这有帮助