📜  如何在 C 编程语言中生成随机数(1)

📅  最后修改于: 2023-12-03 15:08:34.419000             🧑  作者: Mango

如何在C编程语言中生成随机数

在C编程语言中,有多种方法可以生成随机数。下面将介绍常用的几种方法。

1. 使用 rand() 函数

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() 函数生成随机数。

2. 使用 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 之间。

3. 使用随机数算法

如果需要生成真正的随机数,可以使用随机数算法。随机数算法的特点是生成的数值没有规律,不可预测,也不受种子等因素影响。

下面是一个使用随机数算法生成随机数的代码片段:

#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 之间的随机数。