规范化一个随机的无休止的未知序列?

2024-10-04 07:37:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个无等式的无休止序列,是随机的,类似这样的

   X = 1, 456, 555, 556, 557, 789 ... 

请注意,我将此列表作为流获取,我不知道将来的值,也不知道X的最小值和最大值。你知道吗

如何找出任何x in X的倒转法线N(X),这样

N(x) --> 0如果x --> inf

N(x) --> 1如果x --> 0

可以这样理解:x越大,它应该越接近0x越小,它应该越接近1。你知道吗

我怎样才能实现这样的转变?你知道吗

我尝试了以下方法:

#python
def invnorm(x):
    denom = 1 + math.exp(-x)
    return 2 - (2/denom)

invnorm(200)
Out[8]: 0.0

invnorm(20)
Out[9]: 4.1223073843355e-09

invnorm(2)
Out[10]: 0.23840584404423537

invnorm(1)
Out[11]: 0.5378828427399902

不知何故,这并不能给出一个令人满意的结果,因为我的范围是一个很大的数,而200本身就给出了0,我的范围将向0倾斜。你知道吗


Tags: 方法in列表returndef序列mathout
2条回答

好的,你基本上在寻找一个连续单调函数:[0,∞)→(0,1],这样:

  • limx→0Nx)=1,和
  • limx→∞Nx)=0。你知道吗

在这种情况下,“明显的”选择是N(x) = 1 / (x + 1),或者在Python中:

def invnorm (x):
    return 1.0 / (x + 1)

当然,也有无穷多的函数满足这些条件,比如对于任何正实数a,N(x)=1/(x+1)a。你知道吗

另一个“自然”的选择是N(x) = ex,或者在Python中:

def invnorm (x):
    return math.exp(-x)

对于任何实数b>;1,它也可以重新缩放为Nx)=b-x,同时仍然满足您的要求。你知道吗

当然,如果我们放宽了单调性要求(我只是假设,尽管你没有明确说明),甚至像abhishekbansal的N(x) = sin(x) / x这样的更奇怪的函数也可以。你知道吗

1 - X / M,其中M是期望的最大值(对于整数X,可以是4294967295.)。你知道吗

相关问题 更多 >