srand函式和rand函式到底如何使用

時間 2021-05-05 17:17:59

1樓:檀香透窗櫺

rand函式

函式標頭檔案:stdlib.h

函式定義:int rand(void)

函式功能:產生一個隨機數

函式說明:

rand函式產生的隨機數嚴格意義講不是真正的隨機數,它裡面採用了線性同餘法計算出隨機數,所謂的線性同語法簡單來說就是使用了一個公式。

該方法有個最大週期m,也就是說該方法實在一定的範圍內生成一串數字,不過這個m一般來說比較大,所以正常使用時一般看起來就是產生了隨機的數。

不過這個函式由於預設種子是1,所以每次產生的隨機數都是相同的,也就是說每次執行程式,產生的隨機數都是一樣的,失去了部分隨機的意義,所以一般會配合srand函式使用。

返回值: 返回0至rand_max之間的隨機整數值,rand_max的範圍最小在32767之間。若用unsigned int 雙位元組是65535,四位元組是4294967295的整數範圍。

且0-rand_max每個數字被選中的機率是相同的。

srand函式

函式標頭檔案:stdlib.h

函式定義:void srand(unsigned int seed)

函式功能:設定隨機數種子

函式說明:通常可以用getpid()(獲取當前程序的程序識別碼)或者time(null)(獲取當前系統的時間資訊)來充當種子,保持每次執行時種子是不一樣的。

擴充套件資料

當srand()的內容相同時,則在rand()後產生相同的隨機數列;所以當用time(null)來進行初始隨機數,根據時間來產生隨機數,這樣就能產生不同的。

呼叫方法是srand(gettickcount()),但是又不能在每次呼叫rand()的時候都用srand(gettickcount())來初始化。

因為現在計算機執行時間比較快,當連續呼叫rand()時,系統的時間還沒有更新,所以得到的隨機種子在一段時間內是完全相同的,因此一般只在進行一次大批隨機數產生之前進行一次隨機種子的初始化。

2樓:匿名使用者

就是隨機數種子,你不改變隨機數種子,用迴圈輸出隨機數,輸出來的隨機數其實是一模一樣的,你改變他,就是改變隨機數生成的規則,就會出來不一樣的隨機數,訊息來自華夏聯盟

3樓:匿名使用者

rand()函式的功能是產生一個隨機數,不過他是需要一個種子才能產生,每次執行程式的時候rand()

的預設種子回事1,如果部提供一個隨機種子的話就會每次產生的隨機數值都是一樣的;srand()

函式的功能就是給rand()函式提供公隨機種子,一般在程式開始的時候用系統時間作為隨機數種子,這樣得到的隨機數就會不一樣

4樓:du瓶邪

在c語言裡面,兩個函式包含在標頭檔案裡面,c++裡面,標準庫(被包含於中).

srand函式是隨機數發生器的初始化函式。

原型:void srand(unsigned seed);

rand函式用來產生隨機數,當然是偽隨機數。

原型:int rand(void)

seed的作用:srand函式的作用是根據引數seed,設定一個隨機起始點,而rand函式根據這個起始點,產生隨機數序列。預設的隨機種子為1。

如果隨機種子一樣,rand函式所產生的隨機序列也一樣。

因此,為使每次程式執行都能產生不同的隨機序列,每次都應產生一個不同的種子引數。

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

5樓:手機使用者

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

產生一個dao隨機數。

通常格專式為:

srand ( (unsigned) time (null) );

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

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

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

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

srand和rand函式怎麼用,麻煩寫個簡短的c++給我看看

6樓:兔子和小強

#include

#include

#include

using namespace std;

int main()

7樓:

//#include "stdafx.h"//vc++6.0加上這一行.

#include "stdio.h"

#include "time.h"

#include "stdlib.h"

void main(void)

c語言中rand()函式與srand()函式有什麼區別呢

8樓:匿名使用者

完全不同。。。。

rand()是隨機函式 ,取數用的

srand()是隨機種子函式,決定 rand()的隨機值電腦沒有真正意義上的隨機數 ,如果沒有srand()每次 rand()的值都是相同的

高斯函式和高斯核函式是不是函式,高斯函式和高斯核函式是不是一個函式

迪特格設計 所謂徑向基函式 radial basis function 簡稱 rbf 就是某種沿徑向對稱的標量函式。通常定義為空間中任一點x到某一中心xc之間歐氏距離的單調函式 可記作 k x xc 其作用往往是區域性的 即當x遠離xc時函式取值很小。最常用的徑向基函式是高斯核函式 形式為 k x ...

把函式變成奇函式和偶函式的和,把一個函式變成一個奇函式和一個偶函式的和

話說人事管理 基本原理是這個式子 f x f x f x 2 f x f x 2 你把原函式代到上面的式子中,再通分化簡一下就能得到答案。上式中,前半部分是奇函式,後半部分是偶函式。最後答案為 f x x x 2 x 1 x 2 x 1 x 2 1 x 2 x 1 x 2 x 1 其中,g x x ...

excel函式中min和max函式

某某 excel之max跟min函式 其實,樓主實際對excel 函式max和min沒有充分地理解 max函式編輯公式為 max number1 number2,number13,number,顯然是指的數字,max函式的意義在於從number1到無窮盡的數字當中,找出最大的一個數字 當然,這個nu...