用于将数字对数转换为百分比的算法

时间:2009-11-28 18:31:41

标签: math logarithm

我正在寻找一种方法,可以通过以下方式将任意数字转换为百分比:

  1. 1.00是50%
  2. 低于1.00的数字接近0%对数
  3. 1.00以上的数字以对数方式接近100%。

      

    x>所以y需要接近0,因为x在正面变得无限小。

  4. 我确信这很简单,但我不记得怎么做了。

4 个答案:

答案 0 :(得分:15)

尝试1 / (1 + e^(1-x))

logistic function移动了1个单位

graph

如果您希望它接近更快,您可以将e更改为更高的

编辑:

要f(0)= 0,你可以使用1 - 2^(-x)

graph

答案 1 :(得分:4)

当你以对数方式说时,你的意思是渐近吗?如果是这样,则“y需要接近0,因为x在正侧变得无限小”,如果f是连续的,则意味着f(0)= 0。在这种情况下,x /(x + 1)将起作用:http://www.wolframalpha.com/input/?i=x%2F%28x%2B1%29

答案 2 :(得分:2)

y = f(t) = 1 - exp(-t/tau)怎么样?

对于接近0的t,y约为t / tau。对于接近无穷大,y渐近逼近1.

对于f(1)= 0.5方法,这可用于求解tau = 1 / log(2)。

答案 3 :(得分:2)

从你所描述的内容来看,我听到的是x立方体的图形 - 非常基本,在大多数语言中都应该有效。

Graph http://jedsmith.org/static/S01813305.png

这是用y=(x-1)^3+1绘制的(转换为(1,1)原点)。当然,您可以通过简单地缩放50来使结果成为百分比。

你最终会尝试使用一种有效的解决方案,在编程语言中给出一个粗略的百分比行为而不是Mathematica,对吗?