首页 > 编程知识 正文

时间种子c语言,c++时间种子

时间:2023-12-29 13:16:55 阅读:330317 作者:SPVT

本文目录一览:

C语言如何设置固定时间种子

计算机产生的随机数并不是真正随机的,所以叫

伪随机数。

当逗种子地固定时,它产生的随机数序列是不变的,例如产生10个数,这10个数大小是变化的,但只要用这个种子,每次产生的这10个数序列,是一模一样的。

srand(time(0));

设种子,就会因时间变化,得到不同的种子,那么随机数序列就会变化。

time(0)

是当前时间,(精度可能是毫秒)。只要两次跑程序启动时间差别

超过1毫秒,两个序列就不同了(随机)。如果,时间差别不到1毫秒,两个序列就没变化。

--------

错误的程序:

for

(i=0;i5;i++){

srand(time(0));

//

5次的种子若不变

printf("%d

",rand());

//

依次取

5个序列的

第一个数

}

5个数不变化。

-------------------

正确的程序:

srand(time(0));

//

设1次种子

for

(i=0;i5;i++){

printf("%d

",rand());

//依次取1个序列的第1到第5个随机数

}

5个数变化

srand(time(0));//设置时间种子是什么意思(是c语言中的)

因为系统的时间每次都不同,这样可以避免每次产生的随机数都相同

C语言问题,怎样利用系统时间作为随机数的种子?

C语言中,设置随机数种子需要包含头文件stdlib.h,利用系统时间需要包含头文件time.h。

设置随机数种子的函数原型为:void srand(unsigned int seed);

利用系统时间作为随机数的种子代码如下:

#include stdlib.h

#include time.h

int main(){

    srand((unsigned)time(NULL)); // 利用系统时间作为随机数的种子

    return 0;

}

C语言中产生随机数利用到时间种子,什么原理?谢谢啦。

在C语言中取随机数所需要的函数是:

int rand(void);

void srand (unsigned int n);

rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:

#include stdlib.h

rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。

srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。