RAND_MAX

RAND_MAX

RAND_MAX 指的是 C 語言標準庫 <stdlib.h> 中定義的一個宏。經預編譯階段處理後,它展開為一個整數類型的常量表達式。RAND_MAX 是 <stdlib.h> 中偽隨機數生成函式 rand 所能返回的最大數值。

這意味著,任何一次對 rand 的調用,都將得到一個 0~RAND_MAX 之間的偽隨機數。

基本介紹

  • 中文名:無
  • 最小為:32767
  • 所需頭檔案:C:<stdlib.h>,C++:<cstdlib>>
  • 定義: C 語言標準庫 <stdlib.h> 的宏
ISO IEC 9899 2011 (C11)標準中未規定 RAND_MAX 的具體數值。但該標準規定了RAND_MAX 的值應至少為32767。編程的時候,不應該對 RAND_MAX 的具體數值做任何假設。
RAND_MAX在VC++6.0下的輸出結果RAND_MAX在VC++6.0下的輸出結果
rand 返回 0~RAND_MAX 之間的隨機數。要得到一個 0~1.0 之間的隨機浮點數,一種簡單的做法是:
/* C語言 */
(double)rand() / RAND_MAX// C++
static_cast<double>(rand()) / RAND_MAX
下面是一個符合 C99 標準的完整 C 語言實例:
#include <stdio.h> // printf#include <stdlib.h> // srand, rand, RAND_MAX, EXIT_SUCCESS#include <time.h> // time#define COUNTS (10)int main(void){    double pseudo_random_numbers[COUNTS] = { 0.0 };    int i = 0;    /* 初始化偽隨機數生成器 */        srand((unsigned int)time(NULL));           /* 產生 COUNTS 個 0.0~1.0 之間的隨機浮點數 */   for(i = 0; i < COUNTS; i++)        pseudo_random_numbers[i] = (double)rand() / RAND_MAX;   for(i = 0; i < COUNTS; i++)        printf("%f\n", pseudo_random_numbers[i]);        return EXIT_SUCCESS;}

相關詞條

熱門詞條

聯絡我們