简单的数学问题:

时间:2010-12-08 12:03:10

标签: c# algorithm math

我有一个简单的问题。

我有两个值MIN和MAX。然后我有一系列值(X),可以介于0和+无穷大之间。

现在我想要一个算法将X的每个值x映射到MIN和MAX之间的范围。

3 个答案:

答案 0 :(得分:6)

这是一个只使用基本算术(没有atanexp)的人:

  

MAX +(MIN - MAX)/(1 + x

如果您需要改变此保形贴图的形状,请尝试

  

MAX +(MIN - MAX)/(1 + f( x ))

对于任何正函数f(例如f( x )= kx 或f( x )=√ x < / em>或......)。

答案 1 :(得分:4)

MIN + atan(x)*(MAX-MIN)/(PI / 2)

答案 2 :(得分:3)

假设你想要一个单调递增的函数:

MAX + (MIN - MAX)*exp(-k*x)

其中k是一个速率因子,用于确定映射接近MAX的速度。