iOS:在特定范围内生成随机数组

iOS:在特定范围内生成随机数组,ios,objective-c,Ios,Objective C,我有一个包含80个json对象的数组。我想构建一个新的子数组,它只有4个元素(但每次填充时都不同于80个元素的较大数组),并且只有一个json的特定键 以下是我的代码: [arr_sub removeAllObjects]; [arr_sub addObject:[[arr_main objectAtIndex:currentcount] valueForKey:@"e"]]; for(int i =1;i<=3;i++) { //int random

我有一个包含80个json对象的数组。我想构建一个新的子数组,它只有4个元素(但每次填充时都不同于80个元素的较大数组),并且只有一个json的特定键

以下是我的代码:

[arr_sub removeAllObjects];
    [arr_sub addObject:[[arr_main objectAtIndex:currentcount] valueForKey:@"e"]];
    for(int i =1;i<=3;i++)
    {
       //int random = number between 1 to 80 -- how do i generate this ??
        [arr_sub addObject:[[arr_main objectAtIndex:random] valueForKey:@"e"]];
    }
[arr_sub removeAllObjects];
[arr_sub addObject:[[arr_main objectAtIndex:currentcount]valueForKey:@“e”];
对于(int i=1;i
arc4random()
将生成0-1之间的随机数,您可以这样使用它:

int min = 0;
int max = 80;

int randNum = arc4random() % (max - min) + min;
arc4random()
将生成0-1之间的随机数,您可以这样使用它:

int min = 0;
int max = 80;

int randNum = arc4random() % (max - min) + min;

arc4random是一个函数,您可以使用它生成随机数

int randomNumber = arc4random()%80;

arc4random是一个函数,您可以使用它生成随机数

int randomNumber = arc4random()%80;

要在某个范围内生成随机索引,请使用
arc4random\u uniform(range)
。 就你而言:

int random = arc4random_uniform(80);
使用
arc4random\u uniform()
而不是
arc4random()
,它与使用mod运算符没有偏差。也不要使用C函数
rand()
,因为它的结果不是随机的

但是JSON在哪里?JSON是一种传输表示形式,在Objective-C中,主要的收集类是
NSArray
NSDictionary
。接收到的JSON通常与类
NSJSONSerialization
和以下方法一起转换为这些的组合:

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error

要在某个范围内生成随机索引,请使用
arc4random\u uniform(range)
。 就你而言:

int random = arc4random_uniform(80);
使用
arc4random\u uniform()
而不是
arc4random()
,它与使用mod运算符没有偏差。也不要使用C函数
rand()
,因为它的结果不是随机的

但是JSON在哪里?JSON是一种传输表示形式,在Objective-C中,主要的收集类是
NSArray
NSDictionary
。接收到的JSON通常与类
NSJSONSerialization
和以下方法一起转换为这些的组合:

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error

使用
arc4random_uniform()
,与使用mod运算符相比更简单且没有偏差。使用
arc4random_uniform()
,与使用mod运算符相比更简单且没有偏差。使用
arc4random_uniform()
,与使用mod运算符相比,它更简单,并且没有偏差。如果范围为10-100(min!=0)?
arc4random(max-min)+min
%操作数太差了?太差了,对于小范围:不。但是为什么
arc4random\u()
可用,使用更简单,没有偏差?为什么选择一个较差的方法?相反,使用
arc4random_uniform()
,它更简单,并且与使用mod运算符时没有偏差。如果范围为10-100(最小!=0)?
arc4random(最大-最小)+min
操作数%s太差了?太差了,适用于小范围:不。但是为什么
arc4random_uniform()
可用时,使用更简单且没有偏差?为什么选择较差的方法?