algorithm - 实线上间隔的恒定时间隶属度索引?

标签 algorithm math time-complexity lookup-tables

假设我得到了一组总和为 1 的重量,我将它们一个接一个地排列起来,形成一系列长度与其重量成正比的箱子。我为每个 bin 分配一个与其在行中的位置相对应的整数。

给定 [0,1] 中的任何数字,我希望能够检查哪个索引对应于该数字所在的容器。我可以想出一种算法在恒定时间内完成此操作吗?

对数时间解决方案很简单,但我希望有更好的解决方案!

最佳答案

这可能可以使用 alias method 来完成,可用于在时间 O(1) 内从离散分布生成随机样本。我相信您可以通过简单地反转变换来适应此算法来解决您的问题,这样您就可以从离散存储桶映射到统一变量,而不是从统一随机变量映射到离散存储桶。从那里,您可以确定该值属于哪个存储桶。

希望这有帮助!

编辑:我最近写了一篇关于别名方法和其他相关技巧的广泛文章。希望这能让算法及其直觉更加清晰和容易!

关于algorithm - 实线上间隔的恒定时间隶属度索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375094/

相关文章:

c++ - 如何优化随机排序算法?

algorithm - 如何找到与所有给定线段的欧氏距离之和最小的 3d 点?

algorithm - 查找以下重复的复杂性 : T(n) = T(n/2) + log(n)

java - 使用 DFS 和 java 寻路

java - 将排序数组转换为二叉搜索树

algorithm - 如何获得可以使用给定数字组成的所有可能的 n 位数字?

java - Java如何在内存中存储+-Infinite?

java - 用java读取Dxf文件

python - 以尽可能低的时间复杂度,从列表中第一个较小的数字中减去列表中的每个数字

python - 列表查找比集合查找慢