从3列表中查找并插入其中一列?

时间:2017-06-12 21:37:10

标签: c# algorithm lookup-tables linear-interpolation

我有一个包含3列的表:温度,压力和增益。

interface IEntry
{
    public float Temperature {get;}
    public int Pressure {get;}
    public float Gain {get;}
}

给出一定的"输入"对(Temperature_input,Pressure_input),我想将这对与表中的对匹配,并查找相应的增益,在某些情况下进行插值。

示例:

T   P   G
3   1   0
3   2   1
3   3   2
3   5   4
6   1   0
6   2   2
6   3   3
8   1   0
8   2   3
9   1   0

输入对(T = 4, P = 2)

步骤1:由于表格中没有确切的温度​​T = 4,因此检查了直接的低温和高温3和6(8个表项)

步骤2:T = 3,T = 6的对按压力排序(这是一个int)

3   1   0
6   1   0
3   2   1
6   2   2
3   3   2
6   3   3
3   5   4
3   5   4

步骤3:相同压力温度之间的线性插值:

3   2   1
6   2   2

结果是内插增益= 1 + (2-1)/(6-3) = 1.33

实现表的查找部分的有效方法是什么,将被访问数百万次?

0 个答案:

没有答案