C 语言随机函数

17 Mar 2025 | 6 分钟阅读

在本主题中,我们将学习随机函数以及如何在 C 编程语言中生成随机数。正如我们所知,随机函数用于查找两个定义数字之间的随机数。在 C 编程语言中,随机函数有两个内置函数:rand() 和 srand() 函数。让我们在 C 语言中理解这些函数。

Random Function in C

rand() 函数

C 编程语言中,rand() 函数是一个库函数,它在 [0, RAND_MAX] 范围内生成随机数。当我们在程序中使用 rand() 函数时,需要实现 stdlib.h 头文件,因为 rand() 函数定义在 stdlib 头文件中。它不包含任何种子数。因此,当我们一次又一次地执行同一个程序时,它会返回相同的值。

注意:如果未使用 srand() 函数调用而仅使用 rand() 函数生成随机数,则每次执行程序时都会返回相同的数字序列。

语法

rand() 函数返回范围从 0 到 RAND_MAX 的随机整数。RAND_MAX 是 stdlib.h 头文件中定义的符号常量,其值取决于 C 库,但小于 32767。

使用 rand() 函数生成随机数

让我们编写一个程序来使用 rand() 函数获取随机数。

num.c

输出

The random number is: 41
 The random number is: 18467
 The random number is: 6334
 The random number is: 26500

使用 rand() 函数生成 5 个随机数

让我们考虑一个在 C 编程语言中使用 rand() 函数生成 5 个随机数的程序。

random.c

输出

Random Numbers are:
 41 18467 6334 26500 19169

程序第二次执行

Random Numbers are:	
 41 18467 6334 26500 19169

程序第三次执行

Random Numbers are:
 41 18467 6334 26500 19169

正如我们在上面的输出中看到的,它在每次执行编程代码时都返回相同的随机数序列。

使用 rand() 函数生成 1 到 100 之间的 10 个随机数

让我们考虑一个使用 rand() 函数在 C 中查找随机数的程序。

rand_num.c

输出

Program to get the random number from 1 to 100
 42  68  35  1  70  25  79  59  63  65

srand() 函数

srand() 函数是一个 C 库函数,它确定生成不同伪随机数序列的初始点。srand() 函数必须与 rand() 函数一起使用。在调用 rand() 函数之前,需要在程序中设置一次种子值,以生成不同的随机整数结果。

语法

seed:这是一个整数值,包含新伪随机数序列的种子。

使用 srand() 函数生成随机数

让我们编写一个程序,使用 C 中的 srand() 函数获取随机数。

srandNum.c

输出

Enter a number to set the limit for a random number
10

44      32      23      35      6       33      1       4       22      18

程序第二次执行

Enter a number to set the limit for a random number
15	

13      30      24      27      4       30      28      35      36      13      44      39      21      5       7

正如我们在上面的输出中看到的,它在每次执行编程代码时都返回不同的随机数序列。

使用 srand() 和 time() 函数生成随机数

让我们编写一个程序,使用 srand() 和 time() 函数获取随机数。

srand_time.c

输出

Seed = 1619450091 Random number = 41

获取一个种子值并使用 srand() 函数打印随机数

让我们编写一个程序,使用 srand() 函数获取种子值和随机数。

srand_time.c

输出

Enter the Seeding value:
10
     6     4     3     3     6
     3     3     1     3     4

程序第二次执行

Enter the Seeding value:	
20
     2     4     2     4     5
     4     3     5     1     4

程序第三次执行

Enter the Seeding value:
25
     1     6     1     6     4
     4     1     4     1     3

正如我们在上面的输出中看到的,当我们使用不同的种子值一次又一次地执行相同的程序时,它会显示 1 到 6 之间的不同随机数序列。

使用随机函数生成随机数

让我们创建一个程序,使用 stadlib 头文件在 C 中使用随机函数获取随机数。

func.c

输出

Enter a number to set the limit of random numbers
17
Enter the maximum number from you want to get the random number:
100
15 random number from 0 to 100 number are:
 42  68  35  1  70  25  79  59  63  28 75 89 90 43 7 4 65

生成浮点随机数的程序

让我们考虑一个在 C 中打印浮点随机数的程序。

random1.c

输出

Float random numbers are:
1.208075
1.658376
4.645070
2.298807
3.117161
0.961486
4.115573
4.336223
2.894833
2.249825