如何将数字范围相互映射?

时间:2013-07-17 18:36:48

标签: ruby numbers

如何将两个相对的数字范围相互映射?

我有一个带有三个数字的范围:1, 2, 3(以及任何可能的小数)。

我想粗略地将其映射到1000到0的范围内。

所以,1 = 10002 = 5003 = 0

最终,我想采用像1.68这样的数字,并找出它在1000-0规模上匹配的位置。

1 个答案:

答案 0 :(得分:6)

使用math

假设您想要从第一个范围(1-3)到第二个范围(1000-0,降序)的线性映射,这将是您的功能:

y = (3 - x) / 2 * 1000

其中x是输入(1 <= x <= 3),y是输出(0 <= y <= 1000)。

这可以根据需要推广到不同的范围。

正在申请专利。