ios 生成随机数一般有三种方式:
1. srand((unsigned)time(0));
//加了这句的话每次产生的随机数将会发生改变
int i = rand() % 5;
2. srandom(time(0));
int i = random() % 5;
3. int i = arc4random() % 5 ;
注:个人认为,不提倡使用第一和第二种产生随机数方法,rand()和random()在使用它们两之前需要先初始化随机种子,不然每次生成的随机数都将会是一样的。
那么第三种方法比前两种方法有哪些好处呢:
1、arc4random() 则不需要生成随机种子,因为第一次调用的时候就会自动生成。
2、从另一个角度来看而且范围是rand()的两倍之多。
接下来可以用一个简单的比较来对比下它们的范围
范围比较:arc4random() > random() > rand()。
接下来我们来熟悉下arcrandom()的用法吧:
1、获取一个随机整数范围在:[0,100)包括0,不包括100
int x = arc4random() % 100;
2、 获取一个随机数范围在:[500,1000),包括500,不包括1000
int y = (arc4random() % 501) + 500;
3、获取一个随机整数,范围在[from,to),包括from,不包括to
-(int)getRandomNumber:(int)from to:(int)to { return (int)(from + (arc4random() % (to – from + 1))); }
下面是我自己项目中所实现的arcrandom()求随机数方法:
-(NSArray *)generating_the_digital:(id)sender { //随机数从这里边产生 startArray=[[NSMutableArray alloc] initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil]; //随机数产生结果 resultArray=[[NSMutableArray alloc] initWithCapacity:0]; //随机数个数 NSInteger m=4; for (int i=0; i<m; i++) { int t=arc4random()%startArray.count; resultArray[i]=startArray[t]; startArray[t]=[startArray lastObject]; //为更好的乱序,故交换下位置 [startArray removeLastObject];//产生的随机数将会从startArray数组里移除这样就不会产生重复的随机数了 NSLog(@"result"); } return resultArray; }