相关函数

1、rand()

  • 介绍

函数功能:rand()函数是产生随机数的一个随机函数。
函数返回:返回的随机数是 0 ~ RAND_MAX (32767)之间的随机整数
使用时需包含头文件 #include <stdlib.h>

但严格意义上来说它不是真正的随机值,在它里面有一个算法,调用它时就会通过种子算出一个数,但是因为该函数的默认种子是 1,就算用它得到了一个数,看似是随机的,其实再次执行程序会发现还是那个数,这就没什么意义了,于是它就被称为伪随机数

因此我们就需要srand()函数来提供随机的种子,rand就会返回随机值了。

  • 用法

获得范围为 0 ~ m-1 之间的整数:

int x = rand() % m

获得范围为 n ~ m 之间的整数:

int x = (rand() % m) + n;
  • 示例

随机生成三个数 python 随机生成三个数字函数_随机数

2、srand()

  • 介绍

srand函数是随机数发生器的初始化函数
通俗来说:srand()函数为rand()函数提供随机数种子,rand()就能根据其种子算出伪随机值。

  • 函数原型:
void srand(unsigned int seed)

rand()函数调用前会查看是否有srand()函数给定了种子,有则调用srand(seed)一次来初始化它的起始值。,若没有,那么就默认种子为 1

seed值就是我们自己给定的种子,但是这个种子也是不变的,导致仍然是伪随机数,如果我们想让这个种子变化该怎么办?这时候就需要=time()函数了;

  • time()函数

函数功能:获取当前的系统时间
函数返回:返回结果是一个time_t类型

函数原型:

time_t time(time_t * timer)

time_t * timer是一个指针,在这用不到,直接给NULL就行。
返回类型 time_t 是一个时间戳可以将其看作long long int,也就是一个很大的整数。时间在不断的发生变化,时间戳也就跟着变化。

  • 用法
#include <time.h>

包含头文件!

srand((unsigned int)time(NULL));

将time函数返回值转为无符号整型作为随机数种子,此时rand函数所产生的值就是真正的随机值了。

  • 示例

随机生成三个数 python 随机生成三个数字函数_c语言_02

  • 注意

千万不能将srand函数写在循环里,只需要初始化一次即可。

否则不会改变,或者说如果我们两次调用srand函数设置随机数种子之间的时间间隔不超过1s,这会导致我们重置随机数种子,从而等价于使用了一个固定的随机数种子。那么这两次调用最后生成的随机数就是相同的。

随机生成三个数 python 随机生成三个数字函数_随机数_03