伪随机数rand()与srand()学习心得
来源:互联网 发布:淘宝创业故事 编辑:程序博客网 时间:2024/06/05 01:54
(只是自己的粗略见解)
简单的说,rand()每次运行得到的随机数序列是一样的,
而srand()每次运行达到的序列不同,是真正的随机序列。
至于那些高深的理论,我并没有去深入研究,比如到底rand怎么实现的,以及一些机器时间等。。。。。。。。
直接看下面吧
1、rand()用法
//采用rand()每次生成的随机数序列是一样的void randTest(){for (int i = 1; i < 10; i++) {int k;k=rand()%100+1;//rand()%100表示产生0到100之间的随机数,即取了随机数后再对100取余 int j;// j=(int)(n*rand()/(RAND_MAX+1.0)) 产生一个0到n之间的随机j = (int)(10 * rand() / (RAND_MAX + 1.0));//产生0到10之间的伪随机数printf("k=%d\n",j);}}
2、srand()用法
#include<stdio.h>#include<stdlib.h>#include<time.h>void srandTest(){int i, j;//srand(5);//默认情况下种子为1srand((int)time(0));//每次输出的序列都不一样//srand((unsigned)time(NULL));//与srand((int)time(0));效果一样for (i = 0; i<10; i++){j = rand() % 100 + 1;//产生0~100之间的随机数//j = 1 + int(rand()*100.0 / (RAND_MAX + 1.0));printf("%d ", j);}}//情况一:默认种子//int i, j;//for (i = 0; i<10; i++)//{//j = rand() % 100 + 1;//printf("%d ", j);//}//由于种子默认都是1,每次都输出:42 68 35 1 70 25 79 59 63 65//情况二:指定种子为1//int i, j;//srand(1);//for (i = 0; i<10; i++)//{//j = rand() % 100 + 1;//printf("%d ", j);//}//由于种子没有改变还是1,所以每次都输出:42 68 35 1 70 25 79 59 63 65//情况三:例如指定种子为5//int i, j;//srand(5);//for (i = 0; i<10; i++)//{//j = rand() % 100 + 1;//printf("%d ", j);//}//由于种子没有改变,每次都输出:55 94 56 50 61 31 28 50 73 41//情况四:产生伪随机种子,每次结果不同//int i, j;//srand(5);//默认情况下种子为1//srand((int)time(0));//每次输出的序列都不一样,或者使用//srand((unsigned)time(NULL));效果一样//for (i = 0; i<10; i++)//{//j = rand() % 100 + 1;//产生0~100之间的随机数//printf("%d ", j);//}//每次运行结果不一样//第一次运行结果:25 88 36 42 70 5 25 86 93 19//第二次运行结果:95 49 1 51 71 19 32 8 28 32
仔细去看很有趣的,特别是time.h文件中的一些函数,多去尝试一下。
我写博客就是为了记住自己学的一些东西的,是让自己看的,不喜勿喷啊
阅读全文
0 0
- 伪随机数rand()与srand()学习心得
- 随机数(rand与srand)
- srand与rand随机数生成
- rand和srand产生伪随机数总结
- 用rand()和srand()产生伪随机数
- 随机数 rand()与srand()的区别
- 使用rand()与srand()产生随机数
- rand与srand:随机数的生成
- C++ Srand 与Rand 产生随机数
- rand()和srand()产生伪随机数的方法总结
- 用rand()和srand()产生伪随机数的方法总结
- rand()和srand()产生伪随机数的方法
- 用rand()和srand()产生伪随机数的方法总结
- 用rand()和srand()产生伪随机数的方法总结
- 用rand()和srand()产生伪随机数的方法总结
- 用rand()和srand()产生伪随机数的方法总结
- 用rand()和srand()产生伪随机数的方法总结
- rand()和srand()产生伪随机数的方法总结(转)
- sdk开发中如何去捕获系统的didReceiveLocalNotification以及didReceiveRemoteNotification通知
- 听说有些老铁,要感谢下大师兄?扫一扫,领红包啦。顺便打赏我个0.01¥怎么样?
- Android学习之ListView
- 【NOIP2017模拟赛】二分图+状态压缩DP Graph(好题)
- 为什么这题交上去显示wrong answer?
- 伪随机数rand()与srand()学习心得
- MySQL练习时所遇问题
- IDA动态调试技术及Dump内存
- Java 技术之垃圾回收机制
- Java主流几大框架的对比(EasyUI,Bootstrap,Struts2,SpingMvc,Ejb,Spring,Hibernate,Mybatis)
- Error:Unable to resolve dependency for ':app@stage/compileClasspath': Could not resolve project :mvp
- 哲学家就餐问题的思考(java实现)
- C# Webservice XML通信的基本方法(一 Webservice 接口的使用)
- parqute orc 存储文件格式