gpt4 book ai didi

objective-c - 打乱 N 个数字的数组并转换回整数

转载 作者:行者123 更新时间:2023-12-03 16:55:14 24 4
gpt4 key购买 nike

我有一个大小为 n 的 NSMutableArray urlArray,我想从数组中的元素总数中随机选择其中的 4 个 URL。

但是我不想直接打乱 urlArray,我更喜欢制作一个“indexArray”[0 ... (n-1)] 并打乱这些,然后使用打乱后的 indexArray 的前 4 个元素决定我从 urlArray 中选择哪些元素。

首先,我创建了indexArray,如下所示:

for (int i = 0; i < numberOfStems; i++) {

[indexArray addObject:[NSNumber numberWithInteger:i]];

}

这使我能够洗牌我的indexArray,到目前为止一切顺利。因为我用的是[NSNumber numberWithInteger:i] 方法,打乱后的indexArray中的元素是NSNumbers。

有没有办法将indexArray中的NSNumber对象转换为int?

我尝试使用 intValue 函数,但这似乎不是我所需要的。

我还尝试创建一个 C 风格数组,但也不是那么成功 - 如果可能的话,我想坚持使用 Objective-C 语法。

有什么想法吗?任何提示表示赞赏:)

最佳答案

为什么不创建一个普通的 C 数组,对其进行洗牌,然后使用数组中的前四个整数作为随机索引?

类似的东西

int* index = malloc(numberOfStems*sizeof(int));
for (int i = 0; i < numberOfStems; ++i)
{
index[i] = i;
}

for (int i = numberOfStems - 1; i > 0; --i)
{
int randomIndex = arc4random() % i;
int tmp = index[i];
index[i] = index[randomIndex];
index[randomIndex] = tmp;
}

现在使用索引来访问 URL

已编辑:更新算法(尽管与OP问题并不真正相关)

关于objective-c - 打乱 N 个数字的数组并转换回整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057436/

24 4 0