我在C#中有一个程序,要求用户输入4个值。 他们是:
MinIndex,MaxIndex,MinValue,MaxValue
我希望能够确定[MinIndex MaxIndex]范围内任何给定索引的值。 索引的范围并不总是相同,所以我需要首先找到它并以某种方式使用该值。
举个例子说
MinIndex=250, MaxIndex=750 the range is 500; MinValue=0.025, MaxValue=0.254 range is 0.229.
如果我执行valueRange / indexRage,我会得到0.000458。
这个数字使我能够取任何索引说“267”并乘以0.000458,我将得到该指数的值。
然而,这是从0-500开始工作。我如何使用我的原始索引说[250-750]并且有一个值可以乘以得到该指数的值,即[298 *?]
计算是线性的,因为我知道最大指数的值和最小指数的值我知道有办法解决其余的问题。
很抱歉,如果这是一个愚蠢的问题,但数学不是我的字符串点之一
提前谢天谢地答案 0 :(得分:1)
从索引中减去MinIndex并除以索引范围,得到0到1之间的值。这表示在前往MaxIndex的路上距离MinIndex的距离。
按此比率乘以值范围并添加MinValue以获得结果。
这称为线性插值
答案 1 :(得分:1)
公式为:
(Value - MinValue)/(MaxValue-MinValue)=(Index - MinIndex)/(MaxIndex - MinIndex)
求解价值:
value = (MaxValue-MinValue) * ((Index-MinIndex) / (MaxIndex-MinIndex)) + MinValue