隨機數問題

2021-08-28 04:44:04 字數 1189 閱讀 9612

1、隨機數問題:希望掉落2或者4。

1⃣️使用std::time()函式取得乙個每次都不一樣的時間作為種子數值

2⃣️使用std::srand()函式設定這個種子數值初始化隨機數發生器

3⃣️使用std::rand()函式根據我們所需要縮放的範圍進行取餘處理製造我們所需要的隨機數

1.1std::time()函式

傳入null空值,就能夠得到表示當前時間的std::time_t物件,作為獲取隨機數引數的種子

1.2      rand:初始化隨機化發生器

用   法:   int rand(void);  

所在標頭檔案: stdlib.h

函式說明 :

rand()的內部實現是用線性同餘法做的,它不是真的隨機數,因其週期特別長,故在一定

的範圍裡可看成是隨機的。

rand()返回一隨機數值的範圍在0至rand_max 間。rand_max的範圍最少是在32767之間(int)。用 

unsigned int 雙位元組是65535,四位元組是4294967295的整數範圍。0~rand_max每個數字被選中

的機率是相同的。                      

使用者未設定隨機數種子時,系統預設的隨機數種子為1。

rand()產生的是偽隨機數字,每次執行時是相同的;若要不同,用函式srand()初始化它。

1.3      srand():隨機化發生器

用   法:   void srand(unsigned  int  seed);  

所在標頭檔案: stdlib.h  

函式說明:srand((unsigned)time(null))

srand()用來設定rand()產生隨機數時的隨機數種子。

引數seed必須是個整數,通常可以利用time(0)的返回值或null來當做seed。

如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。

1.4      例子:使用取餘符號%輸入rand()%2來獲取0-1之間的數。

#include #include using namespace std;

//掉落2或者4

int main()

隨機數 簡學 隨機數問題

隨機是概率論用語,指事前不可預言的,即在相同條件下重複進行試驗,每次結果未必相同,或知道事物過去的狀況,但未來的發展卻不能完全肯定,隨機也有 真隨機 與 偽隨機 真隨機 比如量子力學,因為乙個放射性物質原子下一分鐘是否發生衰變是真正隨機的,不可預言的 偽隨機 由經過系統的不同的因素造成,或是由於忽略...

隨機數問題

要產生真正的隨機數還是有難度的!好在vc中提供有隨機數函式,rand 函式。msdn中定義如下 include include include void main void int i seed the random number generator with current time so tha...

隨機數 偽隨機數

隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...