如何转换为对数刻度并返回?
How to convert to logarithmic scale and back?
import math
def log_n_back(x, base):
return math.pow(math.log(x, base), base)
x = 14
y = log_n_back(x, math.e)
print(y) # 13.983525601880974
y = log_n_back(x, 10)
print(y) # 3.9113921541997523
使用math.e
的至少是近似答案。但是使用 10
的那个是错误的。
更多上下文:我必须处理 1,000
和 100,000
之间的数字。
将参数的顺序调换为 pow()
:
return math.pow(base, math.log(x, base))
然后它会按照您想要它做的,结果将非常接近您想要的。
import math
def log_n_back(x, base):
return math.pow(math.log(x, base), base)
x = 14
y = log_n_back(x, math.e)
print(y) # 13.983525601880974
y = log_n_back(x, 10)
print(y) # 3.9113921541997523
使用math.e
的至少是近似答案。但是使用 10
的那个是错误的。
更多上下文:我必须处理 1,000
和 100,000
之间的数字。
将参数的顺序调换为 pow()
:
return math.pow(base, math.log(x, base))
然后它会按照您想要它做的,结果将非常接近您想要的。