我正在尝试创建一个函数来测试python中的命令time
。函数应该以m,n
为参数,计算MODEXP(a,e,p)
,其中p最多是2^m
,第一种情况下e是2^n
,第二种情况下是2^(n-1)
,a是小于p的随机正整数
这是我的密码:
import random
def question_3(m,n):
list = []
for i in xrange(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(5,5) #non-Python syntax.
问题是这个函数不能在m
和n
大于20
的情况下工作,我不知道为什么。你知道吗
你的代码在我的盒子上运行得很好。正如其他人所指出的,它是O(2**n),因此运行时间呈指数增长。这是我的时间安排:
对于m=n=100,大约需要1.3*10^49秒。你知道吗
相关问题 更多 >
编程相关推荐