我有一个包含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
实现表的查找部分的有效方法是什么,将被访问数百万次?