【ML基础】随机种子

概念

 

随机数

伪随机数

随机种子

若采用random.random(),每次都按照一定的序列(默认的某一个参数)生成不同的随机数。

若采用随机数种子random.seed(100),它将在所设置的种子100范围内调用random()模块生成随机数,如果再次启动random.seed(100),它则按照之前的序列从头开始生成随机数,两次生成的随机序列相同。

若采用random.seed(),它则按照默认的一个序列生成随机数。

C语言

产生随机数的函数:int rand(void); rand函数没有参数,返回值就是随机数;

实际上通过rand函数产生的随机数是伪随机数,它是根据一个数值然后通过公式计算出来一个值,将计算的结果作为随机数返回。这个固定参考的数值就被称为“种子”,每次计算机启动时就会生成一个种子,然后在以后运行的过程中种子就不会在发生变化了。所以每次执行rand函数的时候,它参考值种子值都是固定的,因此每次生成的随机数也就是固定的。如果要每次生成的随机数不同,那么每次产生随机数之前就需要改变种子的值。

种子数值是由srand函数产生的,void srand(unsigned int _seed); 函数没有返回值,它的参数就是需要设置的种子值。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char** argv) {
  int i;
  // srand(10); // 设置种子数值.
  srand(time(NULL)); // 将系统时间作为种子值.
  i = rand() % 10;  // 控制数字范围.
  printf("%d\n",i);
  return 0;
}

 

参考

1. C语言中随机数rand()函数详解

posted on 2021-12-11 18:09  鹅要长大  阅读(286)  评论(0编辑  收藏  举报

导航