iOS产生随机数,rand、random、srand、srandom 、arc4random

1.获取[0, 10]的随机数:

①int a = arc4random()%11;

②srand((unsigned)time(0)); //不加这句每次产生的随机数不变

    int b = rand() % 11;//短时间内不会改变如一秒内调用几次,产生的数相同

③srandom((unsigned)time(0));

    int c = random() % 11;//短时间内...同上

④int d = random() % 11;//短时间内...同上

⑤int e = rand()% 11;

2.获取[5, 10)的随机数:

①int a = arc4random()%11 + 5;//(arc4random()%11) + 5

②srand((unsigned)time(0));

    int b = rand() % 11 + 5;//(rand()%11) + 5

③srandom((unsigned)time(0));

    int c = random() % 11 + 5;//

④int d = random() % 11 + 5;

⑤int e = rand()% 11 + 5;

调试结果:



*** 大家都说是三种方法,我随便写了以上五种看了一下也是可以的,不过仅供参考,慎用!***

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

arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。

精确度比较:arc4random() > random() > rand()。

链接:本段引用于 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值