您的位置:首页 > 移动开发 > IOS开发

iOS 随机数的使用

2016-05-04 09:50 260 查看
1、iphone有几个内嵌的随机数发生器,如rand()、random()、arc4random()

其精确程度为

arc4random() > random() > rand()

可以由其原型进行推断

int rand();

long random();

u_int32_t 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);

1、随机数的使用

1)、arc4random() 比较精确不需要生成随即种子

使用方法 :

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

int value = arc4random() % x;

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

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

2)、CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1]

使用方法:

float random = CCRANDOM_0_1() * 5; //[0,5] CCRANDOM_0_1() 取值范围是[0,1]

3)、random() 需要初始化时设置种子

使用方法:

srandom((unsigned int)time(time_t *)NULL); //初始化时,设置下种子就好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: