srand(time(0))函数的用法介绍

目录:

  • 什么是随机数?
    • 设置种子产生随机数
  • 案列分析

什么是随机数?

我们知道在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)

设置种子产生随机数

由于计算机没有办法产生真正的随机数的,是用算法模拟,所以你只调用rand,每次算出来的东西是一样的。设置一个种子后,根据种子的不同,就可以产生不同的数了。

在这里插入图片描述
Srand是种下随机种子数,你每回种下的种子不一样,用Rand得到的随机数就不一样。为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的了)。简单来说:
srand()是给随机数产生一个种子
time(NULL)就是把当前的时间值作为种子
srand(time(0)):我们可以称它为启动种子,也叫随机种子数,

案列分析

一般用for语句来设置种子的个数,我们还可以用算数运算符来控制rand()随机数的大小,比如想的到0-1之间的随机数,1-100之间的随机数等等
实现0-1之间的随机数:

#include 
#include 
#include 
int main()
{
	int i;
	srand((unsigned)time(NULL));
	for (i = 0; i < 10; i++)
		printf("%4.2f\n", rand() / 32767.0);
}

srand(time(0))函数的用法介绍_第1张图片
实现0-100之间的随机数,这个在我们猜数字的时候用过:

#include 
#include 
#include 
int main()
{
	int i;
	srand((unsigned)time(NULL));
	for (i = 0; i < 10; i++)
		printf("%d\n", rand() % 100 + 1);
}

srand(time(0))函数的用法介绍_第2张图片
实现0-32767之间的随机数:

#include 
#include 
#include 
void main()
{
    int i;
    srand(time(0));
    /* 输出 10 个随机数. */
    for (i = 0; i < 10; i++)
        printf("%6d\n", rand());
}

srand(time(0))函数的用法介绍_第3张图片

你可能感兴趣的:(算法,c++,开发语言)