iOS之数组、获取不重复随机数数组

xiaoxiao2021-02-28  107

方法一: 

 

 //每次点击之前,清空随机数数组,

    if(self.randomArr &&self.randomArr.count){

        [self.randomArrremoveAllObjects];

    }

==============

 

//获取到num个不同的随机数就返回随机数数组

-(NSMutableArray *)getDifferentRandomWithNum:(NSInteger )num{

    if(self.randomArr &&self.randomArr.count>0){

        [self.randomArrremoveAllObjects];

    }

    

    NSInteger random;

    for (;;) {

        

        random=arc4random_uniform(11);//随机数0-10

        NSLog(@"random--%tu",random);

        if(self.randomArr.count==0){

            [self.randomArraddObject:[NSNumbernumberWithInteger:random]];

           

           continue;//进行下一次循环

            

        }

        

        BOOL isHave=[self.randomArrcontainsObject:[NSNumbernumberWithInteger:random]];//判断数组中有没有

        if(isHave){

            

            continue;

        }

        [self.randomArraddObject:[NSNumbernumberWithInteger:random]];

        if(self.randomArr.count==num){

            returnself.randomArr;

        }

      

        

    }//self.randomArr是存储随机数的数组,如果是在按钮点击是获取随机数,在按钮点击的开始就要把数组清空,防止连续数组内容叠加

}

 

 方法二:   

    //获取不同的随机数;还有一种思路;吧要生成的随机数范围放到数组中,然后生成随机数作为数组的index,然后每生成一个随机index后,吧对应的数组中的数删除;

    

 

 

            NSIndexSet *secIndexset = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(self.selectrow+1,strongS.secresourceArray.count )];//设置一个范围

            [strongS.resourceArray insertObjects:strongS.secresourceArray atIndexes:secIndexset];//在总数据中插入新数组

转载请注明原文地址: https://www.6miu.com/read-51163.html

最新回复(0)