1、获取一个随机整数范围在:[0,100)包括0,不包括100 int x = arc4random() % 100; 2、 获取一个随机数范围在:[500,1000),包括500,不包括1000 int y = (arc4random() % 501) + 500; /***********************/ //生成0~9 NSArray *temp = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6",@"7", @"8",@"9",nil]; NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:temp]; NSMutableArray *resultArray = [[NSMutableArray alloc] init]; int i; int count = temp.count; NSLog(@"count:%d",count); for (i = 0; i < count; i ++) { int index = arc4random() % (count - i); [resultArray addObject:[tempArray objectAtIndex:index]]; NSLog(@"index:%d,xx:%@",index,[tempArray objectAtIndex:index]); [tempArray removeObjectAtIndex:index]; } [tempArray release]; NSLog(@"resultArray is %@",resultArray); //输入出 /* resultArray is ( 9, 3, 1, 4, 5, 8, 7, 6, 2 ) */ //原理 int index = arc4random() % (count - i); //每取一个。减少一个。比如开始是从0~8 取一个后就少一个。 [tempArray removeObjectAtIndex:index]; //最重新的就是这句。它是把array 里的已取到的元素删掉,
本文详细介绍了如何使用arc4random函数在指定范围内生成随机数,包括[0,100)和[500,1000)等,并提供了一种有效的算法来随机打乱一个包含数字的数组,确保每次运行都能得到不同的顺序。
3968

被折叠的 条评论
为什么被折叠?



