这段代码适用于每一个 25 及以上到十亿位的数字,但是我使用的任何小于 25 的数字都会在我接近 1 时返回越来越奇怪的数字。我将这段代码基于我编写的平方根函数。
这是对数的代码
def loginterp(start, end, iteration, base):
#start = 2 (log of 100)
#end = 110 (the goal is log of 110)
#base = 10
dif = end - base ** start # differental = 10
den = start * (base ** start-1) # denominator = 20
ans = (dif/den) + start
if iteration > 0:
return loginterp(ans, end, iteration - 1, base)
else:
return ans
def log(x, base=10):
for i in range(1,int(x)):
temp = base ** i
if temp == x:
return i
elif temp > x and i == 1:
return loginterp(2, x, 900, base)
elif temp > x and i > 1:
return loginterp((i-1), x, 900, base)
print(log(25))
超过 25 的数字会产生什么?