C和C++中rand()函数

C和C++中rand()函数

本文遵守cc0协议😎(图片和代码也是)

Guderian出品

头文件

<stdlib.h>

声明

int rand(void)

描述

生成一个随机数,其大小介于0RAND_MAX之间。其中RAND_MAX在头文件<stdlib.h<cstdlib>中宏定义为#define RAND_MAX 0X7fff,十进制形式为32767(1 << 15) - 1

使用方法

调用rand()函数应该通过srand(unsigned int)设置随机数种子,一旦设置随机数种子,那么接下来程序将遵循同一个规则产生随机数。如果你没有设置随机数种子,那么程序将自动把随机数种子设置为1

设置随机数种子为常数

如果设置随机数种子为常数(如1),那么不管在什么时间、什么环境下运行程序都将得到相同的随机数。使用方法如下:

1
2
3
4
5
6
7
8
9
10
11
//cc0
#include <stdio.h>
#include <stdlib.h>

int main()
{
srand(1);
int randnum = rand();
printf("%d\n", randnum);
return 0;
}

设置随机数种子为系统时间戳

如果想要得到不同的随机数,一种常用的方法是设置随机数种子为系统时间戳time(NULL)(先包含<time.h>头文件),即从1970年1月1日0时到当前时刻所经过的秒数。使用方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
//cc0
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
srand (time(NULL));
int randnum = rand();
printf("%d\n", randnum);
return 0;
}

【更多C语言系列】