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

Shp*_*ord 0 ruby numbers

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

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

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

所以1 = 1000,2 = 500,3 = 0.

最终,我想拿一个像1.68这样的数字,并找出它在1000-0规模上匹配的位置.

Rei*_*ard 6

数学!

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

y = (3 - x) / 2 * 1000
Run Code Online (Sandbox Code Playgroud)

xinput(1 <= x <= 3)在哪里,y是输出(0 <= y <= 1000).

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

专利申请中.