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