gpt4 book ai didi

python - 从一组中采样一个元素,时间复杂度为 O(1)

转载 作者:行者123 更新时间:2023-12-01 08:05:12 24 4
gpt4 key购买 nike

我有一个 Python 集合,我想从中采样一个元素,就像使用 random.sample() 方法一样。问题是sample()在内部将set转换为元组,这是O(n),我必须以最优化的方式来做。

是否有一个函数可以用来从时间复杂度为 O(1) 的集合中采样元素,或者唯一的方法是创建您自己的集合实现?

最佳答案

由于数据布局不规则,因此不可能在 O(1) 时间内从基于哈希的集合统一进行采样,除非是 ω(n)查询,通过将其预处理为某种数组。 (当然,可以在构建 set 时维护这样的数组,但这不是给定的起点,并且添加速度并不比 tuple 转换更快。)

关于python - 从一组中采样一个元素,时间复杂度为 O(1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55572750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com