如何转换为对数刻度并返回?

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,000100,000 之间的数字。

将参数的顺序调换为 pow():

return math.pow(base, math.log(x, base))

然后它会按照您想要它做的,结果将非常接近您想要的。