当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 rand()用法及代码示例


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 


相关用法


注:本文由纯净天空筛选整理自maityamit_2003大神的英文原创作品 rand() in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。