📅  最后修改于: 2023-12-03 15:08:34.419000             🧑  作者: Mango
在C编程语言中,有多种方法可以生成随机数。下面将介绍常用的几种方法。
rand() 函数是C语言标准库中的函数,其功能是生成一个范围在 0 到 RAND_MAX 之间的伪随机数。因为 rand() 函数是伪随机数生成器,所以它只是看起来像是随机数,实际上每次使用它生成的数值是一定的。
下面是使用 rand() 函数生成随机数的代码片段:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, n;
// 用系统时间作为随机数种子
srand(time(NULL));
printf("生成 10 个随机数:\n");
for (i = 0; i < 10; i++) {
n = rand();
printf("%d\n", n);
}
return 0;
}
在上面的代码中,我们首先用 time() 函数获取系统时间作为随机数种子,然后使用 srand() 函数将时间作为参数来初始化随机数种子。最后,使用 rand() 函数生成随机数。
有时候我们需要生成一个指定范围内的随机数,比如生成一个 1 到 100 之间的随机数。我们可以使用 rand() 函数和取模运算符 % 来实现这个功能。
下面是一个生成 1 到 100 之间随机数的代码片段:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, n;
// 用系统时间作为随机数种子
srand(time(NULL));
printf("生成 10 个 1 到 100 之间的随机数:\n");
for (i = 0; i < 10; i++) {
n = rand() % 100 + 1; // 取余数,范围在 1 到 100 之间
printf("%d\n", n);
}
return 0;
}
在上面的代码中,我们使用了取模运算符 % 来将生成的随机数限制在 1 到 100 之间。
如果需要生成真正的随机数,可以使用随机数算法。随机数算法的特点是生成的数值没有规律,不可预测,也不受种子等因素影响。
下面是一个使用随机数算法生成随机数的代码片段:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, n, lower = 1, upper = 100;
printf("生成 10 个 1 到 100 之间的随机数:\n");
for (i = 0; i < 10; i++) {
n = (rand() % (upper - lower + 1)) + lower;
printf("%d\n", n);
}
return 0;
}
在上面的代码中,我们使用 (rand() % (upper - lower + 1)) + lower 的公式来生成 1 到 100 之间的随机数。