欢迎来到天天文库
浏览记录
ID:59256000
大小:12.42 KB
页数:5页
时间:2020-09-08
《C语言-随机函数的使用.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言中srand(), rand(), time()函数srand函数 srand函数是随机数发生器的初始化函数。 原型:void srand(unsigned seed); 用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子,后面的rand() 函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数(即从1970
2、年1月1日的00:00:00到当前你所处的时间所经过的秒数),然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned)time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的。 例1(C语言) 随机输出十个
3、0-100之间的整数 程序例1: #include /*用到了srand函数,所以要有这个头文件*/ #include #include /*用到了time函数,所以要有这个头文件*/ #define MAX 10 int main( void) { int number[MAX] = {0}; int i; unsigned int seed; scanf("%d",&seed);/*手动输入种子*/ srand(seed); for(i = 0; i <
4、MAX; i++) { number[i] = rand() % 100; /*产生100以内的随机整数*/ printf("%d ", number[i]); } printf(""); return 0; } 例2(C语言) 程序例2: #include #include #include /*用到了time函数,所以要有这个头文件*/ #define MAX 10 int main( void) { int number[M
5、AX] = {0}; int i; srand((unsigned) time(NULL)); /*播种子*/ for(i = 0; i < MAX; i++) { number[i] = rand() % 100; /*产生100以内的随机整数*/ printf("%d ", number[i]); } printf(""); return 0; } 例3(C++) #include #include #include 6、stdlib> using namespace std; int main() { double random(double,double); srand(unsigned(time(0))); for (int icnt = 0; icnt != 10; ++icnt) { cout << "No." << icnt+1 << ": " << int(random(0,10))<< endl; } return 0; } double random(double start, double end)7、 { return start+(end-start)*rand()/(RAND_MAX+ 1.0); } 在VC++6.0中输出的结果是: ========================================== No.1: 6 No.2: 3 No.3: 8 No.4: 7No.5: 0 No.6: 8 No.7: 4 No.8: 8 No.9: 7 No.10: 9 ========================================== rand函数 简介 功 能::伪随机数发生器 所属库:std8、lib.h 用 法: 需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每行代码都可以产生不同的随机数。 函数原型:int rand(void);
6、stdlib> using namespace std; int main() { double random(double,double); srand(unsigned(time(0))); for (int icnt = 0; icnt != 10; ++icnt) { cout << "No." << icnt+1 << ": " << int(random(0,10))<< endl; } return 0; } double random(double start, double end)
7、 { return start+(end-start)*rand()/(RAND_MAX+ 1.0); } 在VC++6.0中输出的结果是: ========================================== No.1: 6 No.2: 3 No.3: 8 No.4: 7No.5: 0 No.6: 8 No.7: 4 No.8: 8 No.9: 7 No.10: 9 ========================================== rand函数 简介 功 能::伪随机数发生器 所属库:std
8、lib.h 用 法: 需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每行代码都可以产生不同的随机数。 函数原型:int rand(void);
此文档下载收益归作者所有