温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Xcode随机数:and()、random()、arc4random()比较

发布时间:2020-04-15 09:52:53 来源:网络 阅读:3686 作者:807600577 栏目:移动开发

1、iphone有几个内嵌的随机数发生器,如rand()、random()、arc4random()

其精确程度为

arc4random()  >  random()  >  rand()

可以由其原型进行推断

 

int rand();

long random();

u_int32_t arc4random();

Xcode随机数:and()、random()、arc4random()比较

Xcode随机数:and()、random()、arc4random()比较

Xcode随机数:and()、random()、arc4random()比较

 

2、rand()和random()在使用之前需要先初始化随机种子,即调用

srandom(time(NULL));

arc4random()不需要生成随机种子,因为第一次调用的时候就会自动生成。

 

3、在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296),从而有更好的精度。

 

4、几个调用arc4random()的示例:

 

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

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

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

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

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

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

#define ARC4RANDOM_MAX      0x100000000

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

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI