rand隨機數函式用法,如何用rand函式產生乙個隨機數?

2021-12-25 05:04:23 字數 5787 閱讀 4974

1樓:匿名使用者

rand()函式的返回值就是求取隨機的值,所以如果沒有對資料有要求,直接這樣寫:

printf("%d", rand());//輸出乙個隨機數.

但如果對數有要求,如小數或在一定值以內:

小數:rand()/100.0 //100.0後面的.0必須寫,得到乙個小數點後有兩位小數的小數。

一定範圍內的數:rand()%m+n //m是資料區間差,n是最小值

如:求[ 100,120)之間的數就是:rand()%20+100

rand()函式得到的是一偽隨機序列,即,每次執行時,得到的隨機序列是相同的(這是為了保證除錯程式時,每次保持相對穩定的資料,便於查詢程式問題)。為了得到不同的隨機序列,系統提供了srand(int n)函式設定隨機種子,n值不同時,就會得到不同的隨機序列,常用方法為:

srand(time(null)); //time的返回值是當前系統時間(秒數),因為每次執行時的時間不同,time的結果就會是不同的值,這樣,srand()設定的種子就會不同,得到的隨機序列也就會不同。

time在中宣告

rand,srand在中宣告.

2樓:匿名使用者

#include

#include

#include

int main(void)

3樓:七月流光

#include

#include

void main()

4樓:

int i;

i = rand() % 50 + 1; //餘數在0~49內,加1即滿足要求;

如何用rand函式產生乙個隨機數?

5樓:匿名使用者

如果需要在數值a-b之間隨即產生乙個數,如下操作:

單元格中輸入函式

=round(rand()*(c+a),3) 函式解釋:在a-b區間範圍內隨即產生乙個數,小數點後保留3位!

其中的=rand()*(c+a) 函式解釋:以a為起點,步長為c 在a-b中隨即產生乙個數。

備註: c 為步長,也就是所取點的範圍長度。在這裡應該是c=b-a=round(#,3) 函式解釋:數值#小數點後取3位.

6樓:匿名使用者

rand()函式是產生隨機數的乙個隨機函式。

注意:(1)使用該函式首先應在開頭包含標頭檔案stdlib.h

#include(c++建議使用#include,下同)

(2)在標準的c庫中函式rand()可以生成0~rand_max之間的乙個隨機數,其中rand_max 是stdlib.h 中定義的乙個整數,它與系統有關。

(3)rand()函式沒有輸入引數,直接通過表示式rand()來引用;例如可以用下面的語句來列印兩個隨機數:

printf("random numbers are: %i %i\n",rand(),rand());

(4)因為rand()函式是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說c語言的隨機並不是真正意義上的隨機,有時候也叫偽隨機數。

(5)為了使程式在每次執行時都能生成乙個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函式 srand()(來自stdlib.h)可以為隨機數生成器播散種子。

只要種子不同rand()函式就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。

例項:#include

#include

int main()

return 0;}

c語言中rand()函式怎麼用?

7樓:風若遠去何人留

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()

8樓:

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

#include

9樓:匿名使用者

#inlcude

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

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

然後srand(time(0));

10樓:柳絮追風

加這行:#inlcude

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

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

11樓:幸巴達

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

12樓:匿名使用者

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

下面是乙個簡單的例項

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

#include "stdafx.h"

#include "time.h"

#include "stdlib.h"

#include "iostream.h"

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

srand(time(0));

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

return 0;

13樓:

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

怎麼用rand函式產生乙個範圍內的數

14樓:匿名使用者

產生a~b範圍內的隨機數(包含a,b):

a+rand()%(b-a);

15樓:撥浪鼓兒

a+rand()%(b-a)產生的只是a到b-1,因此可以換成a+rand()%(b-a+1)來產生a到b.

16樓:芥茉櫻桃

在excel中可以使用randbetween函式。

randbetween

返回位於指定的兩個數之間的

乙個隨機整數。每次計算工作表專時都將返回一屬個新的隨機整數。

語法randbetween(bottom,top)bottom  函式 randbetween 將返回的最小整數。

top  函式 randbetween 將返回的最大整數。

示例 返回一組介於1到100間的隨機數

17樓:匿名使用者

1+4*rand()

rand函式的用法

18樓:月似當時

srand((unsigned)time(null))則使用系統定時/計數器的值作為隨機種子。每個種子對應一組根據演算法預先生成的隨機數,所以,在相同的平台環境下,不同時間產生的隨機數會是不同的,相應的,若將srand(unsigned)time(null)改為srand(tp)(tp為任一常量),則無論何時執行、執行多少次得到的「隨機數」都會是一組固定的序列,因此srand生成的隨機數是偽隨機數。

庫函式中系統提供了兩個函式用於產生隨機數:srand()和rand()。 原型為:

函式一:int rand(void);

返回乙個[0,rand_max]間的隨機整數。

函式二:void srand(unsigned seed);

引數seed是rand()的種子,用來初始化rand()的起始值。

但是,要注意的是所謂的「偽隨機數」指的並不是假的隨機數。其實絕對的隨機數只是一種理想狀態的隨機數,計算機只能生成相對的隨機數即偽隨機數。計算機生 成的偽隨機數既是隨機的又是有規律的 —— 一部份遵守一定的規律,一部份則不遵守任何規律。

比如「世上沒有兩片形狀完全相同的樹葉」,這體現到了事物的特性 —— 差異性;但是每種樹的葉子都有近似的形狀,這正是事物的共性 —— 規律性。從這個角度講,我們就可以接受這樣的事實了:計算機只能產生偽隨機數而不是絕對的隨機數。

19樓:

這個我用過,我知道:

rand()是乙個可以生成隨機數的函式隨機數,函式返回的隨機數在0-rand_max(32767)之間;

rand()%100結果是隨機數除以100後所得的餘數,即限定隨機的範圍是在0~99之間;

使用rand()函式需新增標頭檔案:#include你的二維陣列可以可提供這樣一種方法實現:

#include "stdafx.h"

#include "stdlib.h"

int main(int argc, char* ar**)return 0;}

如何用rand函式產生隨機數如何用rand函式產生乙個隨機數?

如果需要在數值a b之間隨即產生乙個數,如下操作 單元格中輸入函式 round rand c a 3 函式解釋 在a b區間範圍內隨即產生乙個數,小數點後保留3位!其中的 rand c a 函式解釋 以a為起點,步長為c 在a b中隨即產生乙個數。備註 c 為步長,也就是所取點的範圍長度。在這裡應該...

隨機數函式如何使用,用rand隨機函式怎麼求指定範圍的隨機數

srand函式是隨機數發生器的初始化函式,原型 void srand unsigned seed 它需要提供乙個種子,如 srand 1 直接使用1來初始化種子。不過常常使用系統時間來初始化,即使用 time函式來獲得系統時間,它的返回值為從 00 00 00 gmt,january 1,1970 ...

利用rand函式產生100以內的隨機數,然後用氣泡排序法對這數進行降序排

1 輸入 2 排序抄 3 輸出。參考 如下 include int main for i 0 i 10 i 輸出 利用隨機函式產生10個100以內的整數,並從小到大的順序排序並輸出。include using namespace std int a 10 測試陣列 duvoid print 輸出陣列...