C語言stdlib頭文件(stdlib.h)中rand函數的用法及代碼示例。
用法:
int rand (void);
產生隨機數
0
和RAND_MAX。該數字是由一種算法生成的,該算法每次調用時都會返回一個看起來不相關的數字序列。該算法使用種子來生成序列,應使用函數將其初始化為一些與眾不同的值srand。
RAND_MAX是在中定義的常量<cstdlib>。
使用以下方法在確定的範圍內生成平凡的偽隨機數的典型方法rand是使用範圍跨度使用返回值的模並添加範圍的初始值:
/* rand example: guess the number */
#include <stdio.h> /* printf, scanf, puts, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
int main ()
{
int iSecret, iGuess;
/* initialize random seed: */
srand (time(NULL));
/* generate secret number between 1 and 10: */
iSecret = rand() % 10 + 1;
do {
printf ("Guess the number (1 to 10): ");
scanf ("%d",&iGuess);
if (iSecret<iGuess) puts ("The secret number is lower");
else if (iSecret>iGuess) puts ("The secret number is higher");
} while (iSecret!=iGuess);
puts ("Congratulations!");
return 0;
}
請注意,盡管此模運算不會在跨度中生成均勻分布的隨機數(因為在大多數情況下,此運算使較低的數字更有可能出現)。
C++支持各種強大的工具來生成隨機數和偽隨機數(請參閱<random>有關更多信息)。
參數
(沒有)返回值
介於0和之間的整數值RAND_MAX。示例
/* rand example: guess the number */
#include <stdio.h> /* printf, scanf, puts, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
int main ()
{
int iSecret, iGuess;
/* initialize random seed: */
srand (time(NULL));
/* generate secret number between 1 and 10: */
iSecret = rand() % 10 + 1;
do {
printf ("Guess the number (1 to 10): ");
scanf ("%d",&iGuess);
if (iSecret<iGuess) puts ("The secret number is lower");
else if (iSecret>iGuess) puts ("The secret number is higher");
} while (iSecret!=iGuess);
puts ("Congratulations!");
return 0;
}
在此示例中,隨機種子被初始化為代表當前時間的值(調用time),以便在每次運行程序時生成不同的值。
可能的輸出:
Guess the number (1 to 10): 5 The secret number is higher Guess the number (1 to 10): 8 The secret number is lower Guess the number (1 to 10): 7 Congratulations! |
相關用法
- C語言 atof用法及代碼示例
- C語言 atoi用法及代碼示例
- C語言 atol用法及代碼示例
- C語言 atoll用法及代碼示例
- C語言 strtod用法及代碼示例
- C語言 strtof用法及代碼示例
- C語言 strtol用法及代碼示例
- C語言 strtold用法及代碼示例
- C語言 strtoll用法及代碼示例
- C語言 strtoul用法及代碼示例
- C語言 strtoull用法及代碼示例
- C語言 srand用法及代碼示例
- C語言 calloc用法及代碼示例
- C語言 free用法及代碼示例
- C語言 malloc用法及代碼示例
- C語言 realloc用法及代碼示例
- C語言 abort用法及代碼示例
- C語言 atexit用法及代碼示例
- C語言 at_quick_exit用法及代碼示例
- C語言 exit用法及代碼示例
- C語言 getenv用法及代碼示例
- C語言 quick_exit用法及代碼示例
- C語言 system用法及代碼示例
- C語言 _Exit用法及代碼示例
- C語言 bsearch用法及代碼示例
- C語言 qsort用法及代碼示例
- C語言 abs用法及代碼示例
- C語言 div用法及代碼示例
- C語言 labs用法及代碼示例
- C語言 ldiv用法及代碼示例
- C語言 llabs用法及代碼示例
- C語言 lldiv用法及代碼示例
- C語言 mblen用法及代碼示例
- C語言 mbtowc用法及代碼示例
- C語言 wctomb用法及代碼示例
- C語言 wcstombs用法及代碼示例
注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C rand function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。