rand(C語言函式名)

本詞條是多義詞,共5個義項
更多義項 ▼ 收起列表 ▲

rand是C語言標準庫stdlib.h中的偽隨機數生成函式,函式原型為int rand(void),默認返回0至RAND_MAX(通常為32767)間的整數,生成結果依賴初始種子值算法。

該函式生成的偽隨機數序列在未初始化種子時默認調用srand(1),導致程式多次運行產生相同結果。通常需結合srand函式設定動態種子(如time(NULL)獲取時間戳),並通過取模運算限定數值範圍。例如生成[a,b]區間的整數公式為rand()%(b-a+1)+a,浮點數則採用rand()/(double)(RAND_MAX/(b-a))+a。

簡介
功 能::偽隨機數發生器
所屬庫:stdlib.h
用 法:
需要先調用srand初始化,一般用當前日曆時間初始化隨機數種子,這樣每次執行代碼都可以產生不同的隨機數。
函式原型:int rand(void);
相關函式:srand、time、GetTickCount
程式例1:
#include "stdio.h"
#include "stdlib.h"
int main(void)
{
int i;
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
例1程式在每次運行時都會生成十個偽隨機數,且每次運行的結果相同。如要每次生成的隨機數不同應結合srand函式和time函式。
程式例2:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void)
{
int i;
srand((unsigned int)time(NULL));
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
其中rand()%100中的“100”是可變數,也就是隨機產生時的最大值(100-1=99)。產生隨機數的範圍是[0,100),如果不採用srand((unsigned int)time(NULL));程式會默認調用srand(1)。
偽整型隨機數(a,b)
如果要取得(a,b)之間的數,則 num = rand()%(b-a) + a;
偽浮點隨機數(a,b)
fnum = rand()/(double)(RAND_MAX/(b-a)) + a;
註:a,b均為整數,a != b,且a>= 0;
PHP函式 - rand
產生一個隨機整數
intrand(void)
intrand(int$min,int$max)
如果沒有提供可選參數 min 和 max,rand() 返回 0 到 getrandmax() 之間的偽隨機整數。例如想要 5 到 15(包括 5 和 15)之間的隨機數,用 rand(5, 15)。
Note: 在某些平台下(例如 Windows)getrandmax() 只有 32767。如果需要的範圍大於 32767,那么指定 min 和max 參數就可以生成更大的數了,或者考慮用 mt_rand() 來替代之。
參數
  • min
  • 返回的最低值(默認:0)
  • max
  • 返回的最高值(默認:getrandmax())
例子:
<?php
echorand()."\n";
echorand()."\n";
echorand(5,15);
?>

相關詞條

熱門詞條

聯絡我們