ios 随机数生成
来源:互联网 发布:石油天然气文献数据库 编辑:程序博客网 时间:2024/06/07 01:22
- 最近一直使用随机数,为了以后方便查阅,总结一下:
- 在C中提供了rand()、srand()、random()、arc4random()几个函数。
使用 arc4random 生成随机数
- 1.1 获取一个随机整数范围在:[0,100)包括0,不包括100
int x = arc4random() % 100;
- 1.2 获取一个随机数范围在:[100,200],包括100,包括200
int y =100 + (arc4random() % 101);
1.3抽取方法
- 获取一个随机整数,范围在[from,to],包括from,包括to
-(int)getRandomNumber:(int)from to:(int)to{ return (int)(from + (arc4random() % (to – from + 1)));}
使用 rand() 生成随机数
注意:
- 在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。
- rand()函数没有输入参数,直接通过表达式rand()来引用;
printf("Random numbers are: %i %i\n",rand(),rand());
- 伪随机数:
- 因为
rand()
函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数
。- 为了使程序在每次执行时都能生成一个新序列的随机值,
- 我们通常通过为
随机数生成器
提供一粒新的随机种子。函数srand()
(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。- srand()称为随机数生成器的初始化器。
用rand()随机生成在[x,y]内的整数
/*k即为所求范围内随机生成的数,rand()%a的结果最大为a-1*/int k= x+rand()%(y-x+1)
比较
rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。
arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。
精确度比较:arc4random() > random() > rand()。
// 1. rand(),不加这句每次产生的随机数不变srand((unsigned)time(0)); int i = rand() % 100; // 2. random() srandom(time(0)); int i = random() % 100;// 3. arc4random() int i = arc4random() % 100 ;
阅读全文
0 0
- ios 中生成随机数
- ios生成随机数
- iOS生成随机数
- ios 中生成随机数
- ios 中生成随机数
- ios 中生成随机数
- ios 中生成随机数
- 【IOS基础知识】生成随机数
- ios 中生成随机数
- ios 中生成随机数
- ios生成随机数方法
- ios 中生成随机数
- ios 中生成随机数
- iOS随机数的生成
- ios 中生成随机数
- iOS生成随机数
- ios 生成随机数
- ios中生成随机数
- 第17章 ioctl操作
- Intellij IDEA 出现“Usage of API documented as @since 1.7+”的解决办法
- test
- 问题排除:RecyclerView添加分割线后,每次下拉刷新 Item与分割线间都会增加间距。
- Spring中<context:annotation-config/>的作用
- ios 随机数生成
- RabbitMQ(三)——Publish/Subscribe
- apply和call的区别
- vim实用插件(目录树、代码补全、颜色主题等)
- git warning: refname 'HEAD' is ambiguous
- CentOS配置postgresql+postsql
- 开源在线考试系统
- Wannafly挑战赛2【solved : 2 / 5】
- 关于mysql存储Emoji表情