rand函数
创新互联-专业网站定制、快速模板网站建设、高性价比泉山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式泉山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖泉山地区。费用合理售后完善,10年实体公司更值得信赖。
函数头文件: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函数
rand()函数,一般根srand()函数一起用。它们在一起,作用是:产生一个随机数。
通常格式为:
srand
(
(unsigned)
time
(NULL)
);
a=rand()%x;
//a,x,均为整型变量,其中,x在之前应被赋值。
srand函数里面的unsigned也可以换成其它的。例如:int之类的数据类型,但结果也会有相应的变化。
通过rand函数产生随机数以后,用%x来限定它的范围。即:0=a
评论
加载更多
在c语言里面,两个函数包含在头文件里面,c++里面,标准库(被包含于中). srand函数是随机数发生器的初始化函数。 原型:void srand(unsigned seed); rand函数用来产生随机数,当然是伪随机数。
呵呵,这个是我遇到过的问题,并进行了一些研究。其实这是因为srand()函数是一个随机数产生函数,其意思就是指c语言里的随机数都是由它来控制产生的!!!如果在应用srand()函数之前就用随机函数rand(),则相当于使用了srand(1);
而将srand((unsigned)time(null));这条语句放在了for循环里,即是用了srand((unsigned)time(0));故此句语句不变的话,产生的随机数就不变!!!不懂的话可以问我!
c语言中 srand(time(NULL)); 的意思是:使用当前时间进行随机数发生器的初始化。
time_t time(time_t *t); 是C标准库函数,如果t是空指针(NULL),直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。time() 是指返回自 Unix 纪元起的当前时间的秒数的函数,主要用来获取当前的系统时间,返回的结果是一个time_t类型。
srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed); srand和rand()配合使用产生伪随机数序列。
扩展资料:
srand函数的相关信息:
1、语法:void srand (unsigned seed);
2、参数说明:unsigned seed:随机数产生器的初始值(种子值)。
3、功能说明:srand设置产生一系列伪随机数发生器的起始点,要想把发生器重新初始化,可用1作seed值。任何共它的值都把发生器匿成一个随机的起始点。rand检索生成的伪随机数。在任何调用srand之前调用rand与以1作为seed调用srand产生相同的序列。
此函数可以设定rand函数所用的随机数产生演算法的种子值。任何大于一的种子值都会将rand随机数所产生的虚拟随机数序列重新设定一个起始点。
4、包含文件:stdlib. h
5、返回值:无
参考资料来源:百度百科-time()
参考资料来源:百度百科-srand
srand()函数用来设置算法的种子,time(NULL)返回当前的时间,先调用srand(time(NULL))是把当前的时间作为种子,是程序每次运行产生不同的随机数序列。
涉及到三个概念:
1、随机数:数学上产生的都是伪随机数,真正的随机数使用物理方法产生的。
2、随机数种子:随机数的产生是由算术规则产生的,srand(seed)的随机数种子不同,rand()的随机数值就不同,倘若每次的随机数种子一样,则rand()的值就一样。所以要产生随机数,则srand(seed)的随机数种子必须也要随机的。
3、用srand()产生随机数种子
原型:void srand ( unsigned int seed )。作用是设置好随机数种子,为了让随机数种子是随机的,通常用time(NULL)的值来当seed。
扩展资料:
C语言其他产生随机数的方法。
1、函数名: rand
功能: 随机数发生器
用法: void rand(void);
程序例:
2、函数名: random
功能: 随机数发生器
用法: int random(int num);
程序例:
3、函数名: randomize
功能: 初始化随机数发生器
用法: void randomize(void);
程序例:
参考资料来源:百度百科--srand