gpt4 book ai didi

algorithm - 如何在不产生任何重复项的情况下从数组中提取随机元素

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

我在我的 iPhone 项目中使用 rand() 函数来生成随机数组索引。我生成几个随机索引,然后从这些索引中获取对象。但是我不想多次获取一个对象,所以有没有一种方法可以在数组计数范围内生成一个随机数(我已经在做),不包括以前选择的数字。

即像这样:

int one = rand() % arrayCount
int two = rand() % arrayCount != one

谢谢

最佳答案

三种可能性:

洗牌

Shuffle您的数组并按顺序提取元素。

记住

提取一个随机元素并将其存储到 NSSet 中。如果您下次提取一个,请检查它是否已经在集合中。 (这是线性时间。)

删除

使用 NSMutableArray 并从数组中删除已经提取的元素。如果您不想修改原始副本,请创建一个可变副本。

哪个最好取决于您的需求。

关于algorithm - 如何在不产生任何重复项的情况下从数组中提取随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1481110/

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