美文网首页程序开发
iOS开发丨使用arc4random()生成真随机数

iOS开发丨使用arc4random()生成真随机数

作者: 炼心术师 | 来源:发表于2019-12-20 16:55 被阅读0次

    ios 有三种随机数方法:

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

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

    而arc4random() 是一个真正的伪随机算法,不需要生成随机种子,范围是rand()的两倍。前两种随机数方法中返回的最大值RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。

    从精确度上来说,arc4random() > random() >= rand()。

    下面介绍两个常用的随机数生成方法:

    // 生成随机整数
    - (int)getRandomInt:(int)from to:(int)to {
        return (int)(from + (arc4random() % (to - from + 1)));
    }
    
    // 生成随机浮点数
    - (float)getRandomFloat:(float)from to:(float)to {
        float diff = to - from;
        return (((float) arc4random() / UINT_MAX) * diff) + from;
    }
    

    如生成1~100的随机数,只需要调用
    int a = [self getRandomInt:1 to:100];

    要生成1.0~100.0的随机浮点数,只需要调用
    int f = [self getRandomFloat:1.0 to:100.0];

    相关文章

      网友评论

        本文标题:iOS开发丨使用arc4random()生成真随机数

        本文链接:https://www.haomeiwen.com/subject/yjyinctx.html