gpt4 book ai didi

iphone - 随机访问NSArray,但不会丢失或加倍对象

转载 作者:行者123 更新时间:2023-12-01 19:12:53 25 4
gpt4 key购买 nike

首先,对问题标题感到抱歉,很难用几句话就可以解决这个问题。

基本上,我有一个NS数组,该单词由单词中的字母填充。然后随机显示这些字母,用户必须找到正确的字母才能组成该单词。目前,我正在使用与此类似的代码:

int length = [arrayForCount count];
int randomindex = arc4random() % length;

但这确实达到了我想要的效果,因为每次调用它都是随机的,它会产生相同的int,这将依次产生例如两个字母e,但不会产生数组中的另一个字母。

我也尝试过
randIdx = random() % [arrayForRound count];

有人可以帮我找到一种从数组中随机显示值,但又不丢失某些字母或使其倍增的方法吗?

让我知道是否需要更多信息,谢谢高级提供的帮助。 Ť

最佳答案

如我的评论中所述,将原始数组的对象复制到一个可变数组,并按以下顺序对其进行随机播放:

NSUInteger count = [array count]; //array is the mutable copy of original array
for (NSUInteger i = 0; i < count; ++i) {
NSInteger elements = count - i;
NSInteger n = (arc4random() % elements) + i;
[array exchangeObjectAtIndex:i withObjectAtIndex:n];
}

现在,您可以一一访问 array中的对象,它将是唯一的。您也不会错过任何物品。

关于iphone - 随机访问NSArray,但不会丢失或加倍对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15213668/

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