2016-04-15 09:02:27 u011363981 阅读数 5609

ios 有如下三种随机数方法:

//第一种
srand((unsigned)time(0)); //不加这句每次产生的随机数不变
int i = rand() % 5;
//第二种
srandom(time(0));
int i = random() % 5;
//第三种
int i = arc4random() % 5 ; 

注:

  ① rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。

      ② arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。

精确度比较:arc4random() > random() > rand()

附:arc4random() 常用方法集合

//获取一个随机整数范围在:[0,100)包括0,不包括100
int x = arc4random() % 100;
//获取一个随机数范围在:[500,1000),包括500,不包括1000
int y = (arc4random() % 501) + 500;
//获取一个随机整数,范围在[from,to),包括from,不包括to
-(int)getRandomNumber:(int)from to:(int)to
{
  return (int)(from + (arc4random() % (to – from + 1)));
} 

以上所述就是本文的全部内容了,希望大家能够喜欢

2014-02-08 19:56:06 u013148118 阅读数 521
iOS开发取随机数肯定会遇到的,暂时小结一下,好像有个arc4random(),所以假如你想取80到100的随机数,就可以写成int randomNumber = arc4random()  +80
int index = arc4random() % 6 + 1;就是1到6的随机数了。
还有很多其它的取随机数的方法,论坛上也经常讨论
有网友问怎么生成不重复的随机数,说是生成一个随机种子如:srand(time(NULL)); 
                                                                                         rand() % 1000;还有一个这样的函数 round(random()+10);取到的是10~24之间的数,但是是个伪随机数
怎么获得0到1之间的随机数,不包括0和1
思路是:求1--100之间的随机数就可以了然后/100
srand(time(0)); 
(float)(rand() % 100) /100;

(float)(1+arc4random()�)/100
总结:随机数最好使用arc4random,因为使用random()必须手动设置随机种子srandom(time(NULL));否则产生的就是伪随机数。
网友有个这样的想法:
    NSArray *temp = [NSArray arrayWithObjects:@"1"@"2"@"3"@"4"@"5"@"6"nil];

    NSMutableArray *tempArray = [[NSMutableArray allocinitWithArray:temp];

       NSMutableArray *resultArray = [[NSMutableArray alloc] init];

    int i;

    int count = temp.count;

    for (i = 0; i < count; i ++) {

        int index = arc4random() % (count - i);

        [resultArray addObject:[tempArray objectAtIndex:index]];

        [tempArray removeObjectAtIndex:index];

    }

    [tempArray release];

       NSLog(@"resultArray is %@",resultArray);

resultArray里面每个object的intValue就是你要的不重复随机数了


2016-11-09 13:15:16 winter_zx 阅读数 127

第一种:

Objective-C 中有个arc4random()函数用来生成随机数且不需要种子,但是这个函数生成的随机数范围比较大,需要用取模的算法对随机值进行限制,有点麻烦。

其实Objective-C有个更方便的随机数函数arc4random_uniform(x),可以用来产生0~(x-1)范围内的随机数,不需要再进行取模运算。如果要生成1~x的随机数,可以这么写:arc4random_uniform(x)+1。
第二种:

通过arc4random() 获取0到x-1之间的整数的代码如下:

int value = arc4random() % x; 

 

获取1到x之间的整数的代码如下: 

int value = (arc4random() % x) + 1; 

 

最后如果想生成一个浮点数,可以在项目中定义如下宏:

#define ARC4RANDOM_MAX      0x100000000 

 

然后就可以使用arc4random() 来获取0到100之间浮点数了(精度是rand()的两倍),代码如下:

double val = floorf(((double)arc4random() / ARC4RANDOM_MAX) * 100.0f)


2016-01-05 22:05:58 sinat_30898863 阅读数 257

1.获取一个随机整数范围在:[0,100)包括0,不包括100

    int x = arc4random() % 100;

2.获取一个随机数范围在:[500,1000),包括500,包括1000

    int y = (arc4random() % 501) + 500;

3.想获取在某个范围内的一个随机数,如果你想更加优雅一点地话可以这么做

  写一个函数,传入范围的两个参数,回返想要得到的随机数,范围在[num1,num2),包括num1,包括num2

-(int)getRandomNumberFrom:(int)num1 toNum:(int)num2{

    return (int)(num1 + (arc4random() % (num2 - num1 + 1)));

}



2013-03-20 09:23:58 james_1010 阅读数 566

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()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。

arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。

精确度比较:arc4random()  >  random()  >  rand()。

 

常用方法:arc4random

 

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)));

}

 

  参考:

1.http://kb.cnblogs.com/a/2335710/

2.http://mmz06.blog.163.com/blog/static/121416962011101103734767/


iOS生成随机数

阅读数 310

iOS随机数

阅读数 106

没有摘要!!!

博文 来自: swb1173651639

ios 中生成随机数

阅读数 1104

没有更多推荐了,返回首页