我写的这个函数不适用于超过 25 的数字

问题描述 投票:0回答:1

这段代码适用于每一个 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))
python logging calculus
1个回答
-1
投票

超过 25 的数字会产生什么?

© www.soinside.com 2019 - 2024. All rights reserved.