C 產生隨機數

2021-06-19 10:57:30 字數 1276 閱讀 1128

c++怎樣產生隨機數:這裡要用到的是

rand()函式

, srand()函式

,c++裡沒有自帶的random(int number)函式。

(1) 如果你只要產生隨機數而不需要設定範圍的話,你只要用rand()就可以了:rand()會返回一隨機數值, 範圍在0至rand_max 間。rand_max值至少為32767。

例如:[cpp]view plain

copy

#include

#include 

[cpp]view plain

copy

int_tmain(

intargc, _tchar* argv)    

(2) 如果你要隨機生成乙個在一定範圍的數,

例如:隨機生成10個0~99的數:

[cpp]view plain

copy

#include

#include 

[cpp]view plain

copy

int_tmain(

intargc, _tchar* argv)    

總之,產生a~b範圍的隨機數,可用:a+rand()%(b-a+1)

(3)但是上面兩個例子多次執行的時候輸出結果仍和第一次一樣。這樣的好處是便於除錯,但失去了隨機數的意義。如果想讓每次執行產生不同的隨機數,將用到srand()函式。 srand()用來設定rand()產生隨機數時的隨機數種子。在呼叫rand()函式產生隨機數前,必須先利用srand()設好隨機數種子(seed), 如果未設隨機數種子, rand()在呼叫時會自動設隨機數種子為1。上面的兩個例子就是因為沒有設定隨機數種子,每次隨機數種子都自動設成相同值1 ,進而導致rand()所產生的隨機數值都一樣。

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

通常可以利用geypid()或time(0)的返回值來當做seed

如果你用time(0)的話,要加入標頭檔案#include

例如:[cpp]view plain

copy

#include

#include

#include 

int_tmain(

intargc, _tchar* argv)    

這樣每次執行的結果就會不一樣了!!

c 隨機數產生

我們在做能自動生成試卷的考試系統時,常常需要隨機生成一組不重複的題目,在.net framework中提供了乙個專門用來產生隨機數的類system.random。對於隨機數,大家都知道,計算機不可能產生完全隨機的數字,所謂的隨機數發生器都是通過一定的演算法對事先選定的隨機種子做複雜的運算,用產生的結...

C 隨機數產生

標準庫 被包含於中 提供兩個幫助生成偽隨機數的函式 函式一 int rand void 從srand seed 中指定的seed開始,返回乙個 seed,rand max 0x7fff 間的隨機整數。函式二 void srand unsigned seed 引數seed是rand 的種子,用來初始化...

c 隨機數產生

c c 產生隨機數用到兩個函式rand 和 srand 一.不指定範圍產生隨機數 用到函式rand 函式原型為int rand 無引數。此時會產生乙個介於0 rand max間的整數。rand max的大小可以檢視,在include資料夾 linux在usr目錄 windows在安裝目錄 的stdl...