C语言随机数生成

C语言中 srand()rand() 的使用。

C语言中有可以产生随机数据的函数 ,需要添加 stdlib.htime.h头文件。来看一下具体的使用方法。

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

int main(void) {
srand((unsigned)time(NULL)); // 生成随机数的种子

for(int i = 0; i < 10; i++) {
printf("%d ", rand()); // 生成随机数
}

return 0;
}

输出结果:7142 18434 29304 5796 28581 17283 23800 31838 6665 20447

如果想要输出给定范围 [a, b] 内的随机数,需要使用 rand() % (b-a+1) + a。显然,rand() % (b-a+1)的范围是[0, b-a] ,再加上 a 之后就是 [a, b]

简单举个例子:

生成 [2, 6] 范围内的随机数:rand() % (6-2+1)+2 => rand() % 5 + 2

补充:rand() 只能生成 [0, RAND_MAX] 范围内的随机数(RAND_MAXstdlib.h 中的一个常数,在不同的系统环境中,该常数的值不同,比如我的机子上就是 32767)

------本文结束感谢您的阅读 ------
0%