Iphone 从数组中随机获取对象

Iphone 从数组中随机获取对象,iphone,ios,objective-c,arc4random,Iphone,Ios,Objective C,Arc4random,我有一组30张图片。我的要求是每次只取20张图像,随机取30张图像中的20张。每次获取新的20个图像 有人能告诉我如何才能做到这一点吗 我试过这个: randIdx=arc4random()%[FrontsCards count]; 但我都30岁了。如何从30个图像阵列中获取20个图像?只需使用所有30个图像中的前20个图像,然后首先检查是否有任何图像已显示在阵列中,不会再次添加到阵列中。为此,请尝试一个只运行20次的循环。简单方法:可变复制图像数组,从0到20循环,选择一个图像(idx=ar

我有一组30张图片。我的要求是每次只取20张图像,随机取30张图像中的20张。每次获取新的20个图像

有人能告诉我如何才能做到这一点吗

我试过这个:

randIdx=arc4random()%[FrontsCards count];

但我都30岁了。如何从30个图像阵列中获取20个图像?

只需使用所有30个图像中的前20个图像,然后首先检查是否有任何图像已显示在阵列中,不会再次添加到阵列中。为此,请尝试一个只运行20次的循环。

简单方法:
可变复制
图像数组,从0到20循环,选择一个图像(
idx=arc4random\u uniform(copiedArray.count);
),然后从复制数组中删除所选图像

(不,不要使用
arc4random()%array.count
,模会使随机性消失,这就是为什么会有
arc4random\u uniform()
函数。)

  • 每次抓取前都要洗牌数组
  • 从阵列中获取前20个图像

  • 看看不同的洗牌算法

    @jitendradore还有什么详细信息吗?也许从0循环到9,删除10个图像,然后让剩下的图像作为结果会更有效一些。我认为Jitendra正在寻找一些代码副本粘贴并工作。@jitendradore
    for(m=0;m<20;m++){int rnd=arc4random_uniform(arr.count);NSLog(@“%d”,rnd)}
    但你真的应该有一些算法方面的想法,尽管我已经解释了好几次,但你没有得到这些,这表明你还没有准备好编写iOS应用程序。你甚至不明白为什么循环计数器是循环计数器。。。这不太好。@H2CO3+1有两个原因:1)提到arch4_制服和2)你(相对)在评论中的耐心蚀刻20张图片或20张不同的图片?不要投我的反对票,先生。不是我,但既然你提到了它^^^^(但仍然不是我)