srand函数和rand函数到底如何使用??

srand函数是随机数发生器的初始化函数。

原型:void srand(unsigned seed);
用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如:
srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从
00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即:
srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned)
time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。srand((int)getpid());
使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的[1]。
这是百度到的,但是看不懂,求解释~

rand函数

函数头文件:stdlib.h

函数定义:int rand(void)

函数功能:产生一个随机数

函数说明:

rand函数产生的随机数严格意义讲不是真正的随机数,它里面采用了线性同余法计算出随机数,所谓的线性同语法简单来说就是使用了一个公式。

该方法有个最大周期M,也就是说该方法实在一定的范围内生成一串数字,不过这个M一般来说比较大,所以正常使用时一般看起来就是产生了随机的数。

不过这个函数由于默认种子是1,所以每次产生的随机数都是相同的,也就是说每次运行程序,产生的随机数都是一样的,失去了部分随机的意义,所以一般会配合srand函数使用。

返回值: 返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最小在32767之间。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。且0-RAND_MAX每个数字被选中的机率是相同的。

srand函数

函数头文件:stdlib.h

函数定义:void srand(unsigned int seed)

函数功能:设置随机数种子

函数说明:通常可以用getpid()(获取当前进程的进程识别码)或者time(NULL)(获取当前系统的时间信息)来充当种子,保持每次运行时种子是不一样的。

扩展资料

当srand()的内容相同时,则在rand()后产生相同的随机数列;所以当用time(NULL)来进行初始随机数,根据时间来产生随机数,这样就能产生不同的。

调用方法是srand(GetTickCount()),但是又不能在每次调用rand()的时候都用srand(GetTickCount())来初始化。

因为现在计算机运行时间比较快,当连续调用rand()时,系统的时间还没有更新,所以得到的随机种子在一段时间内是完全相同的,因此一般只在进行一次大批随机数产生之前进行一次随机种子的初始化。

参考资料:百度百科——rand函数

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-11
就是随机数种子,你不改变随机数种子,用循环输出随机数,输出来的随机数其实是一模一样的,你改变他,就是改变随机数生成的规则,就会出来不一样的随机数,消息来自华夏联盟
第2个回答  2012-09-11
rand()函数的功能是产生一个随机数,不过他是需要一个种子才能产生,每次运行程序的时候rand()
的默认种子回事1,如果部提供一个随机种子的话就会每次产生的随机数值都是一样的;srand()
函数的功能就是给rand()函数提供公随机种子,一般在程序开始的时候用系统时间作为随机数种子,这样得到的随机数就会不一样本回答被网友采纳
第3个回答  推荐于2017-09-27
在c语言里面,两个函数包含在<stdlib.h>头文件里面,c++里面,标准库<cstdlib>(被包含于<iostream>中).
srand函数是随机数发生器的初始化函数。

原型:void srand(unsigned seed);
rand函数用来产生随机数,当然是伪随机数。
原型:int rand(void)
seed的作用:srand函数的作用是根据参数seed,设置一个随机起始点,而rand函数根据这个起始点,产生随机数序列。默认的随机种子为1。如果随机种子一样,rand函数所产生的随机序列也一样。
因此,为使每次程序运行都能产生不同的随机序列,每次都应产生一个不同的种子参数。

srand函数和rand函数到底如何使用??
当涉及到在编程中生成随机数,rand()函数和srand()函数扮演了关键角色。rand()函数的主要作用是生成一个看似随机的实际数值,但它有一个前提,即需要一个初始的随机种子。默认情况下,如果没有指定种子,每次程序运行时,rand()都会产生相同的随机数序列,缺乏真正的随机性。而srand()函数的职责则是设定...

srand函数和rand函数到底如何使用??
函数定义:void srand(unsigned int seed)函数功能:设置随机数种子 函数说明:通常可以用getpid()(获取当前进程的进程识别码)或者time(NULL)(获取当前系统的时间信息)来充当种子,保持每次运行时种子是不一样的。

C语言srand和rand函数
rand()函数,一般根srand()函数一起用。它们在一起,作用是:产生一个随机数。通常格式为:srand ( (unsigned) time (NULL) );a=rand()%x; \/\/a,x,均为整型变量,其中,x在之前应被赋值。srand函数里面的unsigned也可以换成其它的。例如:int之类的数据类型,但结果也会有相应的变化。通过rand...

详解srand()与rand(),越详细越好,最后带上程序跟注释
srand和rand()配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子 (由srand函数提供),rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化(这里的种子是指srand根据参数seed生成的种子),每次调用rand函数生成的伪随机数序列都是一样的。srand(unsig...

谁可以帮我详细的解释一下c语言里函数rand()和srand()的用法
srand是用来设置随机时间的种子,一般与rand()结合使用。否则直接用rand()的话,每次运行程序的结果都相同。原型:int srand (unsigned int seed);srand((unsigned) time(&t));此句的参数使用time()函数获得系统时间作为种子,并且把获得的时间强制转换为unsigned。

c语言里rand和srand怎么用,语法是什么样的,举个例子说明一下好么,应该...
先用srand(参数)初始化一个随机数序列,参数为正整数,如果参数相同,那么随机数序列就相同。为了随机,一般用time(0),它是系统时间的一个秒数值,每秒变化。初始化完成后使用rand()从随机数序列中依次抓取一个正整数。

srand和rand函数怎么用,麻烦写个简短的c++给我看看
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。rand(产生随机数)表头文件: #include<stdlib.h> 定义函数 :int rand(void)函数说明 :因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是...

rand函数怎么用?
srand函数用法如下:1、srand是C和C++编程语言中的一个函数,它被用来设置随机数生成器的种子。这个函数通常在需要产生随机数的情况下使用。2、基本的用法,(c#include<stdlib.h>\/\/需要包含这个头文件来使用srand和rand函数int main()\/\/用当前时间作为种子srand(time(NULL));\/\/生成一个随机数int...

c++ rand() srand()
因此srand生成的随机数是伪随机数srand函数是随机数发生器的初始化函数。原型:void srand(unsigned seed);用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统...

c语言产生随机数
1. rand函数的基本使用:`rand`函数是C标准库中的一个函数,它返回一个伪随机数。这个数是一个整数,范围通常是从0到`RAND_MAX`。每次调用`rand`函数,它会返回序列中的下一个数。2. srand函数的使用:为了确保每次程序运行时产生的随机数序列不同,可以使用`srand`函数来设置随机数生成的种子。

相似回答