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

发布时间:2022-11-23

本文目录一览:

1、C语言如何设置固定时间种子
2、srand(time(0));//设置时间种子是什么意思(是c语言中的)
3、C语言问题,怎样利用系统时间作为随机数的种子?
4、C语言中产生随机数利用到时间种子,什么原理?谢谢啦。

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

计算机产生的随机数并不是真正随机的,所以叫 伪随机数。 当“种子”固定时,它产生的随机数序列是不变的,例如产生10个数,这10个数大小是变化的,但只要用这个种子,每次产生的这10个数序列,是一模一样的。 用

srand(time(0));

设种子,就会因时间变化,得到不同的种子,那么随机数序列就会变化。 time(0) 是当前时间,(精度可能是毫秒)。只要两次跑程序启动时间差别超过1毫秒,两个序列就不同了(随机)。如果,时间差别不到1毫秒,两个序列就没变化。

错误的程序:

for (i=0; i < 5; i++) {
    srand(time(0)); // 5次的种子若不变
    printf("%d\n", rand()); // 依次取5个序列的第一个数
}

5个数不变化。

正确的程序:

srand(time(0)); // 设1次种子
for (i=0; i < 5; i++) {
    printf("%d\n", 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) 所产生的结果一样。