zoukankan      html  css  js  c++  java
  • OC中的随机数函数——arc4random()

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


    .......srandom(time(NULL));


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


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


    通过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);    
  • 相关阅读:
    YUM安装(卸载)KDE和GNOME
    shutdown
    linux运行级别
    [root@localhost ~]#各项解释
    常用服务端口号
    部分命令技巧
    网卡配置文件
    《移动端支付系统如何设计有效地防重失效机制?》阅读心得
    软件开发第三天(记录)
    软件开发第二天(记录)
  • 原文地址:https://www.cnblogs.com/Jia-Heng-He465/p/6480872.html
Copyright © 2011-2022 走看看