當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。