所以... 我已经在这个问题上敲了几天,但是仍然无法找到解决方案。
我有两个数字范围
A - >乙
C - > d
给定数字(x)在A - >上; B范围。
我需要在C - >中找到相同的东西。 D范围。
例如:
A - > B =(2→4)
C - > D =(-148 - > -50)
x = 2.3
(-148 - > -50)范围内的等效值是什么?
答案 0 :(得分:0)
您的要求有点宽松,但我很想相信您想要从[2;4]
到[-148;-50]
的间隔内找到仿射转换。
调用f(x) = a.x + b
此转换,您有:
f(2) = 2.a + b = -148
f(4) = 4.a + b = -50
=> 2.f(2) = 4.a + 2.b = -296
=> 2.f(2) - f(4) = b = -246
=> a = (-148 - b)/2 = 49
=> f(x) = 49.x - 246
所以你要找的是f(2.3) = -133.3
答案 1 :(得分:0)
您可以使用((X - A) * (D - C) / (B - A)) + C
。
第一个范围的大小为:B - A
第二范围的大小为:D - C
(X - A)
与(Y - C)
之间的比例应与(B - A)
和(D - C)
的比例成正比。