随机数
2016-06-29 19:34
225 查看
/*
随机数学习
srand, rand(),random(),
arc4random()
srand函数是随机数发生器的初始化函数,原型 void srand(unsigned int seed)
srand和rand()配合使用产生的伪随机数序列。rand函数在产生随机数前,需要系统提供生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数,如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。
srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列
*/
// rand() random() 的初始化函数,如果不加,每次的随机数都和第一次一样
srand((unsigned)time(0));
//c++ 写法;
或者
用c语言的写法 srand((unsigned)time(NULL));
//1.rand()
for (NSInteger i =
0; i < 10; i++) {
NSInteger num = (long)rand()%10;
NSLog(@"随机数==1=====%ld",(long)num);
}
//2.random()
for (NSInteger i =
0; i < 10; i++) {
NSInteger num = (long)random()%10;
NSLog(@"随机数==2=====%ld",(long)num);
}
/*
rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。
即rand()和random()在使用前必须用srand()随机化种子,这样才能每次随机的数都不一样
*/
//3.arc4random
for (NSInteger i =
0; i < 10; i++) {
NSInteger num = (long)arc4random()%10;
NSLog(@"随机数==3=====%ld",(long)num);
}
/*arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。
在iPhone中,RAND_MAX是0x7fffffff
(2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。
精确度比较:arc4random() > random() > rand()。
*/
相关文章推荐
- "break";"continue";"标签名+:"的运用
- 深入理解linux系统下proc文件系统内容
- XUtils框架中HttpUtils使用Get请求时总是返回相同信息的问题解决
- GNS3路由器设置
- session信息入库
- eclipse中server location灰色,如何修改?
- HTTP协议
- Struts2 配置文件result的name属性和type属性
- PAT乙级练习题B1027. 打印沙漏
- 使用JS、ajax访问WebService跨域
- 聚簇索引与非聚簇索引学习总结
- Android_bug之 task ':app:mergeDebugResources'. > Some file crunching failed, see logs f
- 报告写不好别想当领导
- 代码:通过捕捉信号SIGIO将标准输入打印到标准输出
- window.location.href
- matlab中fopen函数与fprintf用法
- leetcode 278 First Bad Version
- 基于bootsrtap的网页开发|慕课网案例
- leetcode 67. Add Binary
- CircleImageView自定义圆形控件的使用