0

我有一个 C# 程序,要求用户输入 4 个值。他们是:

MinIndex、MaxIndex、MinValue、MaxValue

我希望能够确定 [MinIndex MaxIndex] 范围内任何给定索引的值。索引的范围并不总是相同的,所以我需要首先找出它并以某种方式使用该值。

例如说

MinIndex=250, MaxIndex=750 范围为500;
MinValue=0.025,MaxValue=0.254 范围为 0.229。

如果我做 valueRange / indexRage 我得到 0.000458。

这个数字使我可以取任何索引,例如“267”并将其乘以 0.000458,我将得到该索引的值。

然而,这是从 0-500 工作的。我如何使用我的原始索引说 [250-750] 并有一个我可以乘以得到该索引的值的单个值,即 [298 * ?]

计算是线性的,因为我知道最大索引的值和最小索引的值,所以我知道有一种方法可以计算出其余部分。

对不起,如果这是一个愚蠢的问题,但数学不是我的字符串点之一

先感谢您

4

2 回答 2

1

从 Index 中减去 MinIndex,然后除以索引范围,得到一个介于 0 和 1 之间的值。这表示您在通往 MaxIndex 的路上距离 MinIndex 有多远。

将值范围乘以该比率并添加 MinValue 以获得结果。

这称为线性插值

于 2013-05-08T11:03:22.613 回答
1

公式为:

(Value - MinValue) / (MaxValue-MinValue) = (Index - MinIndex)/(MaxIndex - MinIndex)

解决价值:

value = (MaxValue-MinValue) * ((Index-MinIndex) / (MaxIndex-MinIndex)) + MinValue

于 2013-05-08T11:05:07.863 回答