我想看看我在这里的概念是否正确。.
如果我试图避免必须为someExpensiveFun(x)
浮点数据数组中的每个元素计算计算量大x
,比如限制在零和一之间的值,则可以首先预先计算昂贵函数的输出并将其存储在表中。. .
for (int nn = 0; nn < 1000; ++nn)
{
float tmp = ((float)nn) / 1000.f;
lookup[nn] = someExpensiveFun(tmp);
}
然后在性能关键代码的主体中我可以使用 . . .
y = lookup[(int)floor(x*1000.f)];
lookup
调用某种形式的哈希表和相关的哈希函数在概念上是否正确(而不是滥用术语)x*1000
?