gpt4 book ai didi

arrays - 如何从数组中获取唯一的随机项?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:48 24 4
gpt4 key购买 nike

你好,
我有一个(唯一的)对象数组,想从这个数组中获取 4 个随机对象,但是同一个对象不应该被获取两次,所以使用简单的随机函数是行不通的。

我有两个想法:
1. 打乱数组,得到前 4 项。 -> 开销,因为数组可能非常大。
2.生成随机索引。如果之前使用过该索引,请重试,依此类推... -> 有点不可靠...

你知道更好、更有效的方法吗?

最佳答案

Shuffle the array and get the first 4 items. -> Overhead, because the array can be very large.

使用 modern versionFisher Yates shuffle .可以执行in-place如果您在前四次交换后停止,它将为您提供所需的结果。无需对整个数组进行洗牌。

Compared to some other solutions, it also has the advantage that, if only part of the resulting permutation is needed, it can be stopped halfway through

关于arrays - 如何从数组中获取唯一的随机项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5053480/

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