我正在寻找一些方法来使用我的代码使下面的MaxPower()
函数的最小代码更节省内存。在
MaxPower()
的用途:对于整数i
和N_remainder
,返回{i^m
除以{
只有当i
除{MaxPower()
才在{
目前,下面链接的代码对要分解的数字有以下结果(以标准格式编写):
Linux Mint 17上使用的Python版本是2.74。在
我目前正在学习python。在
def MaxPower(i,N_remainder):
m=1
MxP=1
for n in range (2, N_remainder + 1):
b = i**n
a = N_remainder % b
if a==0:
m = m+1
else:
MxP = m
break
return MxP
自最初发布以来的修订代码:
^{pr2}$我意识到以下几点(我目前还没有尝试过这一点,但我目前还没有尝试过)
Python 2 ^{} function 为给定范围内的每个数字创建一个列表。整个列表需要存储在内存中,因此对于
N_remainder
的大值,它可以变得非常大。在取而代之的是^{} 函数,它的作用几乎相同。它使用常量内存,只存储参数并只在需要时计算每个值,一旦使用就不存储旧值。如果将对
range
的调用替换为对xrange
的调用,则函数应该使用几乎恒定的内存。在注意,如果
N_remainder + 1
对于pythonint
太大,xrange
函数将无法工作,但是文档提供了一个替代方法。在这不是内存问题,但不需要显式调用
long
;python2会在必要时自动转换为long
类型。在相关问题 更多 >
编程相关推荐