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);    
  • 相关阅读:
    【移动开发】Android应用程序中实用的代码框架(二)
    使用ListView应该注意的地方
    使用ListView应该注意的地方
    web技术文章
    [LeetCode] 565. Array Nesting
    [LeetCode]495. Teemo Attacking
    south 命令学习
    关于access_token过期的解决办法
    决策树总结《一》.md
    crontab命令
  • 原文地址:https://www.cnblogs.com/Jia-Heng-He465/p/6480872.html
Copyright © 2011-2022 走看看