C 编程语言中的rand() 函数用于生成伪随机数。它在 C 中用于生成 0 到 RAND_MAX 范围内的随机数。
rand() 函数是标准 C 库 <stdlib.h> 的一部分,因此要使用此函数,我们需要包含 <stdlib.h> 库。
rand() 的语法
int rand(void)
参数
- 该函数不带任何参数。
返回值
- 此函数返回 0 到 RAND_MAX 之间的值,其中 RAND_MAX 是在 <stdlib.h> 库中定义的宏。
Note: The rand() function by default uses the value 1 as the seed to generate random numbers which leads to the generation of the same sequence of random numbers. To prevent this, we can use srand() function to specify a new seed for rand() function.
C 语言rand() 的示例
例1:rand()函数说明
C
// C program to illustrate the use of rand() function
#include <stdio.h>
#include <stdlib.h>
int main()
{
// Generate a random number using the rand() function
int value = rand();
// Print the generated random value
printf("The Random Value is: %d", value);
return 0;
}
输出
The Random Value is: 1804289383
时间复杂度:O(1)
空间复杂度:O(1)
示例 2:生成 10 个随机数
C
// C program to generate 10 random number using rand()
// function
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
// Loop through 10 times
for (; i < 10; i++) {
// Generate a random number using the rand()
// function
int value = rand();
// Print the generated random value
printf("%d ", value);
}
return 0;
}
输出
1804289383 846930886 1681692777 1714636915 1957747793 424238335 719885386 1649760492 596516649 1189641421
但是,如果我们想生成 0 到 N 范围内的一些随机数,则需要通过打印 rand() 函数生成的数字的 (N+1) 模来进行修改。
示例:生成小于 N 的随机数
C
// C program to generate random numbers smaller than a
// particular number n
#include <stdio.h>
#include <stdlib.h>
int main()
{
// Set a constant 'N' to 1000
int N = 1000;
// Loop through 10 times
for (int i = 0; i < 10; i++) {
// Generate a random number between 0 and N using
// the rand() function
int value = rand() % (N + 1);
// Print the generated random value
printf("%d ", value);
}
return 0;
}
输出
897 802 765 992 1 521 220 380 729 969
这样我们就可以轻松生成0到N的随机数了。
另外,如果我们想要一个存在于 lower_bound 和 upper_bound 之间的随机数,我们可以通过对 rand() 函数生成的随机数使用简单的数学来实现。
示例:生成一定范围内的随机数
C
// C program to illustrate how to generate random number
// withing a range
#include <stdio.h>
#include <stdlib.h>
int main()
{
// Set the upper bound for random numbers
int upper_bound = 1000;
// Set the lower bound for random numbers
int lower_bound = 100;
// Loop through 10 times
for (int i = 0; i < 10; i++) {
// Generate a random number within the specified
// bounds
int value = rand() % (upper_bound - lower_bound + 1)
+ lower_bound;
// Print the generated random value
printf("%d ", value);
}
return 0;
}
输出
943 897 704 678 132 783 902 760 689 765
相关用法
- C语言 rand()用法及代码示例
- C语言 raise()用法及代码示例
- C语言 realloc()用法及代码示例
- C语言 remove()用法及代码示例
- C语言 rename()用法及代码示例
- C语言 rewind()用法及代码示例
- C语言 return和printf的区别用法及代码示例
- C语言 Atoi()用法及代码示例
- C语言 Getchar()用法及代码示例
- C语言 abs()用法及代码示例
- C语言 printf() and scanf()用法及代码示例
- C语言 strchr()用法及代码示例
- C语言 strcpy()用法及代码示例
- C语言 strcat()用法及代码示例
- C语言 宏 assert()用法及代码示例
- C语言 isdigit()用法及代码示例
- C语言 islower()用法及代码示例
- C语言 setlocale()用法及代码示例
- C语言 cos()用法及代码示例
- C语言 cosh()用法及代码示例
- C语言 sin()用法及代码示例
- C语言 sinh()用法及代码示例
- C语言 tanh()用法及代码示例
- C语言 exp()用法及代码示例
- C语言 ldexp()用法及代码示例
注:本文由纯净天空筛选整理自maityamit_2003大神的英文原创作品 rand() in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。