5

在任何数值库(MKL、Boost、GSL、..etc)中是否有优化函数来搜索排序的浮点数数组以查找与给定浮点数最接近的匹配项?另一个可以为我解决相同问题的函数将从自定义离散概率分布生成随机样本。

4

1 回答 1

4

将评论(我和@betabandido)包装成答案:

您基本上需要找到 2 个候选者,最接近的“上”元素和最接近的“下”元素(假设该元素不在列表中)。这可以有效地使用二分搜索来实现( O(logN))

通过使用std::lower_bound()您可以获得较高的元素,而较低的是数组中它之前的元素。

比较两个候选人 - 最接近给定浮点数的候选人就是你的答案。

于 2013-01-10T11:26:21.147 回答