我想将线性额定值从0.1到0的0-10转换为对数刻度0-100。假设对数底数是2.2,并且应该以增加的速率增加,即2-3的值小于8-9。有人可以帮忙吗?
答案 0 :(得分:0)
最简单的方法是在之前和之后定义一些内容,根据您的指示,这就是我们到目前为止所掌握的信息:
Linear Rating | Log Scale
--------------+----------
0 | 0
0.1 | ?
... | ...
9.9 | ?
10 | 100
让我们调用线性评级x
,对数刻度y
和将x
转换为y
的函数作为f
。
第一件事,log(0)
在任何基数中都未定义,因此您将需要偏移量b > 0
:
f(x) = log₂.₂(x + b)
第二件事,log₂.₂(10)
是2.92
,因此您需要乘数a > 0
:
f(x) = a·log₂.₂(x + b)
第三件事,a·log₂₂(x + b) > 0
代表x = 0
,因此您将需要另一个偏移量c < 0
:
f(x) = a·log₂.₂(x + b) + c
现在您所要做的就是找到a > 0
,b > 0
和c < 0
,使得:
f(0) = 0
f(10) = 100
给出两个点和三个未知数,可能有很多解决方案,因此您将需要另一个转换点!
首先,您可以在Wolfram Alpha中输入以下内容:
a * log(b) + c = 0, a * log(10 + b) + c = 100, a > 0, b > 0, c < 0
答案将以e
为基础,而不是2.2
,但这可能会对您有所帮助。