c語言中rand 函式怎麼用,C語言srand和rand函式怎麼用?

2021-05-31 10:44:29 字數 3845 閱讀 9648

1樓:風若遠去何人留

rand函式功能為獲取一個偽隨機數(偽隨機數的概念下面會有介紹)。

一、函式名:

rand();

二、宣告:

int rand();

三、所在標頭檔案:

stdlib.h

四、功能:

返回一個偽隨機數。之所以說是偽隨機數,是因為在沒有其它操作下,每次執行同一個程式,呼叫rand得到的隨機數序列是固定的(不是真正的「隨機」)。

五、為了使rand的結果更「真」一些,也就是令其返回值更具有隨機性(不確定性),c語言在stdlib.h中還提供了srand函式,通過該函式可以設定一個隨機數種子,一般用當前時間的毫秒數來做引數。通過time(null)可以獲取到當前時間的毫秒值(該函式位於time.

h)中。

六、使用rand的流程可以總結為:

1 呼叫srand(time(null))設定隨機數種子。

2 呼叫rand函式獲取一個或一系列隨機數。

需要注意的是,srand只需要在所有rand呼叫前,被呼叫一次即可,沒必要呼叫多次。

七、以下是隨機獲取10個整型值並輸出的例子,輔助理解。

#include

#include

#include

int main()

2樓:

如果使用rand()函式,需要在程式開始部分增加如下預處理指令:

#include

3樓:匿名使用者

#inlcude

rand()返回一個0~32767的整數

用之前要先呼叫srand(),才能讓每次的隨機數不一樣要#include

然後srand(time(0));

4樓:柳絮追風

加這行:#inlcude

rand()返回一個0~32767的整數

比如m=rand(35),將從0-35中隨機取一個值賦給m

5樓:幸巴達

好像需要包含一個標頭檔案

6樓:匿名使用者

按樓上的做基本上就可以了。

下面是一個簡單的例項

srand(time(0)); 的目的是使的每次產生的隨機數不同。如下:

#include "stdafx.h"

#include "time.h"

#include "stdlib.h"

#include "iostream.h"

int main(int argc, char* argv)這裡沒有呼叫 srand 函式,你兩次執行程式看一下所產生的數是不是一樣,然後將 srand(time(0))加入到 for 的上面就不一樣了。

srand(time(0));

for(int i=0;i<100;i++)cout<

return 0;

7樓:

rand(產生隨機數)

相關函式

srand

表標頭檔案

#include

定義函式

int rand(void)

函式說明

rand()會返回一隨機數值,範圍在0至rand_max 間。在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。關於隨機數種子請參考srand()。

返回值返回0至rand_max之間的隨機數值,rand_max定義在stdlib.h,其值為2147483647。

範例 /* 產生介於1 到10 間的隨機數值,此範例未設隨機數種子,完整的隨機數產生請參考

srand()*/

#include

main()

}執行9 4 8 8 10 2 4 8 3 6

9 4 8 8 10 2 4 8 3 6

srand(設定隨機數種子)

相關函式

rand

表標頭檔案

#include

定義函式

void srand (unsigned int seed);

函式說明

srand()用來設定rand()產生隨機數時的隨機數種子。引數seed必須是個整數,通常可以利用geypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。

返回值範例 /* 產生介於1 到10 間的隨機數值,此範例與執行結果可與rand()參照*/

#include

#include

main()

}執行5 8 8 8 10 2 10 8 9 9

2 9 7 4 10 3 2 10 8 7

c語言srand和rand函式怎麼用?

8樓:手機使用者

rand()函式,一般bai根srand()函式一起用。du它們在一起,作zhi用是:

產生一個dao隨機數。

通常格專式為:

srand ( (unsigned) time (null) );

a=rand()%x; //a,x,均為整型變屬量,其中,x在之前應被賦值。

srand函式裡面的unsigned也可以換成其它的。例如:int之類的資料型別,但結果也會有相應的變化。

通過rand函式產生隨機數以後,用%x來限定它的範圍。即:0<=a

其原理是:用那個隨機數,去除以x,留下所得餘數,作為最終結果。

c語言中的rand()函式,說是產生隨機數的函式,可是為什麼我在使用時產生的隨機數就沒變過呢?

9樓:

rand() 使用的隨機數產生機制,稱為偽隨機數;

所以rand()也叫偽隨機數發生器。

必須初始化一個真正的隨機一點的資料,得到的才像一個真正的隨機數。

所以使用它之前,要呼叫srand 函式初始化一下。

一般大家都喜歡用,系統當前時間來初始化它

#include

srand(time(null));/*或者

.....

a[i]=rand() / rand_max * n;

/* 或者 a[i]=(double)rand() /( rand_max +1)* n; */

....

10樓:匿名使用者

隨機數函式是不真正的隨機數,所以每次執行會有相同的結果,這個現象要用srand函式來解決,用srand函式初始化隨機數生成器,可以避免生成相同的隨機數

一般用電腦的時間來進行初始化

srand((unsigned) time(null));

11樓:龍__鳳

在程式前面加上srand(time(null));,保證隨機種子在每次執行程式時都不一樣,rand()得到的數就不一樣了

12樓:何處可人生

你需要加一個種子,就是在用rand()之前加上srand(time(null))就好了;這樣要用到標頭檔案time.h;根據執行的系統時間不同了計算隨機數,但其實這個函式並不是真隨機,是偽隨機,

13樓:旋風男孩兒

這是因為在使用rand()隨機函式時之前要獲取隨機種子srand((unsigned)time(null));

14樓:匿名使用者

我記得rand()是需要引數的,不同引數導致不同的序列,比如用當前時間作為引數就是一個不錯的選擇。

c語言隨機函式rand()怎麼使用?

C語言srand和rand函式怎麼用

rand 函式,一般bai根srand 函式一起用。du它們在一起,作zhi用是 產生一個dao隨機數。通常格專式為 srand unsigned time null a rand x a,x,均為整型變屬量,其中,x在之前應被賦值。srand函式裡面的unsigned也可以換成其它的。例如 int...

c語言中如何用rand()函式產生20 90的隨機整數

c語言主要通過rand 函式實現隨機數,要產生 n,m 的隨機數,只要通過表示式rand n m即可實現。測試 如下,輸出20個 20,90 的隨機數 include include include int main return 0 int rand void 函式返回一個在零到rand max ...

C 中round函式怎麼用,c語言中round函式哪個標頭檔案

double round double val c語言中round函式的作用 四捨五入到最鄰近的整數。c語言中round函式的作用 四捨五入到最鄰近的整數。c 中沒有直接的round函式,需要自己建立 double round double val c99才有,取決於編譯器是否支援c99.c語言中r...