我希望将介于0和m之间的数字映射为介于0和1之间的数字,但是m是不确定且大约很大的数字。我该如何将这些数字非线性地映射到介于0和1之间而又与不确定的大数字有关?我使用了arctan函数,但效果并不好且不均匀。
如果你想要一个非线性函数,将任意正实数域映射到实数域 [0,1],那么你理论上可以使用: f(x) = x / (x + 1) 这个函数在所有点[0,正无穷)上连续。 然而,您必须意识到浮点数在位数上是有限的。在某些情况下,会发生碰撞,具体取决于实现方式。
sin
、cos
、1.0 / (x + 1)
、x / (x + k)
、(x mod n) / n
等函数都将映射[0, m] -> [0, 1]
。如果您能提供更详细的规格说明,可能会有所帮助... - twalberg