例如a是2,b是8,那么结果应该是8(2提高到3)。 第二个示例a是3,b是7,结果将是3(3提高到1)
我使用了以下功能,如何使它更有效?
def nearestPower(a,b):
n=1
for i in range(1, b) :
if(pow(a,i)<=b):
n=pow(a,i)
else:
break
return(n)
答案 0 :(得分:0)
如果您只需要答案,并取决于要执行的操作(此处似乎您想要的是a的最接近的较低幂):
hi i
i am
am a
a human
human named
named joe
joe norman
如果只需要迭代代码:
from math import log, floor, ceil
def nearestLowerPower(a,b):
return a ** floor(log(b)/log(a))
def nearestUpperPower(a,b):
return a ** ceil(log(b)/log(a))
def nearestPower(a,b):
return a ** round(log(b)/log(a))
请确保声明a> = 1,b> = 1并使用有限值。