精华内容
下载资源
问答
  • OC 随机数

    2014-09-13 14:44:41
     今天在iPhone开发过程中,遇到一个需要生成随机数的问题。很快rand()和arc4random()都进入了考虑范围,但选择的时候感觉有点为难。之前的时候可能没有思索就随便挑一个用了,不过这次良心发现不能太随便了。rand()...
     iPhone开发随想:rand()还是arc4random()

        今天在iPhone开发过程中,遇到一个需要生成随机数的问题。很快rand()和arc4random()都进入了考虑范围,但选择的时候感觉有点为难。之前的时候可能没有思索就随便挑一个用了,不过这次良心发现不能太随便了。rand() 和arc4random()到底应该如何取舍呢?调查了下,发现下文很好地解答了这个问题。

    在iPhone中有几个内嵌的随机数发生器,很多人的第一反应可能就是在调用如下函数后使用rand():

      
    1. srandom(time(NULL)); 


    但是……,rand()实际并不是一个真正的伪随机数发生器,random()会相对好点,但也不算理想。幸运的是iPhone上还有其他的选择。个人来说我首选arc4random() ,原因就是它是一个真正的伪随机算法,而且范围是rand()的两倍。


    在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296),从而有更好的精度。此外,使用arc4random()还不需要生成随机种子,因为第一次调用的时候就会自动生成。

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

      
    1. int value = arc4random() % x; 



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

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


    其中,根据预算优先级括号实际是不需要的,不过我还是对括号格外小心。 
     

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

      
    1. #define ARC4RANDOM_MAX      0x100000000 

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

      
    1. double val = floorf(((double)arc4random() / ARC4RANDOM_MAX) * 100.0f);
    展开全文
  • OC随机数

    2015-05-19 23:09:00
    为什么80%的码农都做不...获取0-6的随机数  CGFloat  a =  arc4random_uniform ( 6 );   CGFloat a =    arc4random()%6; 转载于:https://my.oschina.net/cgphp/blog/417027

    获取0-6的随机数

     CGFloat a = arc4random_uniform(6);

     CGFloat a =  arc4random()%6;


    转载于:https://my.oschina.net/cgphp/blog/417027

    展开全文
  • oc随机数

    千次阅读 2012-11-17 21:04:27
    Random Thoughts: rand() vs. arc4random() There are several built-in randomizers on the iPhone, and most people's first thought is to use rand() after seeding it by calling ...
    Random Thoughts: rand() vs. arc4random()

    There are several built-in randomizers on the iPhone, and most people's first thought is to use rand() after seeding it by calling


    srandom(time(NULL));


    But... rand() is really not a very good PRNG. random() is a little better, but still less then ideal. Fortunately, these are not the only ones available on the iPhone. Personally, I like arc4random() because it's a decent pseudo-random algorithm and has twice the range or rand().

    On the iPhone, RAND_MAX is 0x7fffffff (2147483647), while arc4random() will return a maximum value of 0x100000000 (4294967296), giving much more precision. You also don't need to seed arc4random(), as the first call to it automatically seeds it.

    To get an integer value from arc4random() that goes from 0 to x-1, you would do this:


    int value = arc4random() % x;


    To get an integer in the range 1 to x, just add 1:


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


    The parenthesis aren't really necessary based on order of operation rules, but I'm anal about parens.

    Finally, if you need to generate a floating point number, define this in your project:


    #define ARC4RANDOM_MAX 0x100000000


    Then, you can use arc4random() to get a floating point value (at double the precision of using rand()), between 0 and 100, like so:

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

    展开全文
  • OC随机数 循环

    2015-12-07 13:40:00
    int r = arc4random(); NSLog(@"%d",r); NSLog(@"%d",r%100);//模上100 0-99 NSArray *array = @[@"one",@"two",@"three"]; for (NSString *s in array) { NSL...

         int r = arc4random();

            NSLog(@"%d",r);

            NSLog(@"%d",r%100);//模上100 0-99

     

     

      NSArray *array = @[@"one",@"two",@"three"];

            for (NSString *s in array) {

                NSLog(@"%@",s);

            }

    continue 跳出此次循环

    break 结束此次循环

      int i =1;

            int limit = 3;

            int sum = 0;

            while(i<=limit){

                sum +=i;

                i++;

                

            }

            NSLog(@"%d",sum);

    转载于:https://www.cnblogs.com/WJR12/p/5025860.html

    展开全文
  • OC随机数方法

    2015-08-31 23:47:40
    生成0-x之间的随机正整数 int value =arc4random_uniform(x + 1); 生成随机正整数 int value = arc4random() ...通过arc4random() 获取0到x-1之间的整数 ...获取1到x之间的整数的代码如下:
  • OC 随机数的生成

    千次阅读 2015-08-15 08:38:41
    0-x arc4random_uniform(x)+1
  • OC 获取随机数

    2016-04-08 12:59:00
    1、获取一个随机整数范围在:[0,100)...2、获取一个随机数范围在:[500,1000),包括500,包括1000 inty = (arc4random()%501)+500; 3、获取一个随机整数,范围在[from,to),包括from,包括to -(int)getRandom...
  • oc生成随机数

    千次阅读 2015-07-28 17:39:16
    生成float low 到 high之间的随机数 static inline CGFloat skRand(CGFloat low, CGFloat high) {  return skRandf() * (high - low) + low; } static inline CGFloat skRandf() {  return ...
  • oc随机数

    2017-05-27 16:15:41
    其实不想写的,但是无奈竟然还有一些人被网上...ok,相信看了我这篇文章,小白再去取21到30之间的随机数时就不会再理解arc4random错误然后写成int value = (arc4random() % 30) + 21 了吧。请允许我偷偷笑一下。。。。
  • OC产生随机数的几种方法

    千次阅读 2015-08-19 15:05:32
    产生随机数
  • 以下主要介绍获取随机数、获取指定范围的随机数、获取0~1之间的小数随机数。 #import int main(int argc, const char * argv[]) { @autoreleasepool { int nNum1=0; nNum1=rand(); NSLog(@"%i",nNum1);...
  • Oc随机数的问题

    2014-04-03 11:22:12
    在产生随机数 rand()被调用的时候,他会查看:如果用户之前调用过 srand(seed)的话,他会重新调用一遍 srand(seed)以产生随机数种子;如果发现没有调用过 srand(seed)的话,会自动调用 srand(1)一次。所以,如果希望...
  • OC 中获取随机数

    千次阅读 2014-05-04 17:01:35
     srandom(time(NULL)); //此处是为了让每次生成的随机数不同  int rand = random() % 7;
  • OC-不重复随机数

    2015-09-06 23:06:57
    // oldValue: 旧的数组 // lessThan: 规则 // return: 新的数字 - (NSInteger)randomValueWithOldValue:(NSInteger)oldValue lessThan:...{// 生成随机数 NSInteger random;do { // 如果相同 重新生成 random =
  • OC/iOS获取随机数

    2015-08-05 20:11:16
    //获取1到100之间的随机整数 NSInteger i=arc4random()%100+1;
  • oc随机数的用法(arc4random() 、random()、CCRANDOM_0_1() 1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: intvalue=arc4random()%x; ...
  • rand()%100; time_t time1;//生成一个时间种子 srand((unsigned int) time(&time1)); rand();产生随机数 转载于:https://www.cnblogs.com/ZippoatiOS/p/4106265.html
  • OC中的随机数函数——arc4random()

    千次阅读 2016-12-02 09:46:56
    OC中有几个内嵌的随机数发生器,很多人的第一反应可能就是在调用如下函数后使用rand(), .......srandom(time(NULL)); 但是,但是()实际上并不是一个整整的伪随机数发生器,random()会好一些,但不是最...
  • 1、随机数的使用  1)、arc4random() 比较精确不需要生成随即种子  使用方法 :  通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x;  获取1到x之间的整数的
  • OC 产生某个范围的随机数

    千次阅读 2017-11-27 09:50:27
    int intValue;  intValue = (int)(random()%100)+1;//1-100内
  • 在产生随机数 rand()被调用的时候,他会查看:如果用户之前调用过 srand(seed)的话,他会重新调用一遍 srand(seed)以产生随机数种子;如果发现没有调用过 srand(seed)的话,会自动调用 srand(1)一次。所以,如果希望...
  • C,OC开发中的随机数获取

    千次阅读 2014-12-09 14:47:04
    今天在iPhone开发过程中,遇到一个需要生成随机数的问题。很快rand()和arc4random()都进入了考虑范围,但选择的时候感觉有点为难。之前的时候可能没有思索就随便挑一个用了,不过这次良心发现不能太随便了。rand() ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,120
精华内容 448
关键字:

oc随机数