3

次の方法で任意の数値をパーセンテージに変換する方法を探しています。

  1. 1.00 は 50%

  2. 1.00 未満の数値は対数的に 0% に近づきます

  3. 1.00 を超える数値は、対数的に 100% に近づきます。

    x > 0. x が正の側で無限に小さくなるので、y は 0 に近づく必要があります。

これは簡単にできると思いますが、その方法を思い出せません。

4

4 に答える 4

15

試す1 / (1 + e^(1-x))

それは1単位シフトされたロジスティック関数です

グラフ

より速く接近したい場合は、eをより高いものに変更できます

編集:

f(0) = 0 にするために使用できます1 - 2^(-x)

グラフ

于 2009-11-28T18:38:05.877 に答える
4

対数的というのは漸近的ということですか?もしそうなら、「xが正側で無限に小さくなるにつれて、yは0に近づく必要がある」ということは、fが連続であればf(0)=0を意味します。その場合、x/(x+1) は機能します: http://www.wolframalpha.com/input/?i=x%2F%28x%2B1%29

于 2009-11-28T19:05:13.703 に答える
2

どうy = f(t) = 1 - exp(-t/tau)ですか?

t が 0 に近い場合、y はおよそ t/tau です。t が無限大に近づくと、y は漸近的に 1 に近づきます。

f(1)=0.5 アプローチに関しては、これを使用して tau = 1/log(2) を解くことができます。

于 2009-11-28T19:00:27.627 に答える
2

あなたが説明していることから、私はx立方体のグラフを聞いています-非常に基本的で、ほとんどの言語で効率的であるはずです.

グラフ http://jedsmith.org/static/S01813305.png

y=(x-1)^3+1これを(元になる変換)でグラフにしまし(1,1)た。もちろん、単純に 50 倍することで、結果をパーセンテージにすることもできます。

最終的には、Mathematica ではなくプログラミング言語で大まかなパーセンテージの動作を与える効率的なソリューションを見つけようとしていますよね?

于 2009-11-28T19:05:57.007 に答える