我在我的iPhone项目中使用rand()函数来生成随机数组索引。我生成几个随机索引,然后从这些索引中获取对象。但是我不想多次获得一个对象,所以有没有办法说在数组计数范围内生成一个随机数(我已经在做了),不包括以前选择的数字。
即。像这样的东西:
int one = rand() % arrayCount
int two = rand() % arrayCount != one
由于
答案 0 :(得分:8)
三种可能性:
Shuffle你的数组并按顺序提取元素。
提取随机元素并将其存储到NSSet
中。如果你下一次提取一个,检查它是否已经在集合中。 (这是线性时间。)
使用NSMutableArray
并从阵列中删除已提取的元素。如果您不想修改原始版本,请制作可变副本。
哪一个最好取决于您的需求。