隨機數發生器srand 和rand

2021-07-27 03:51:10 字數 750 閱讀 2658

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

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

原型:void srand(unsigned seed);

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

原型:int rand(void)

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

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

說明:

因為rand的內部實現是用線性同餘法做的,它不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand()會返回一隨機數值,範圍在0至rand_max 間。在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。rand()產生的是假隨機數字,每次執行時是相同的。若要不同,以不同的值來初始化它.初始化的函式就是srand()。

返回值:

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

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

boost 隨機數發生器

在很多應用中都需要使用隨機數。本庫力求提供乙個高效的,通用的隨機數庫。boost庫有多種隨機數生成方式。先熟悉一下各種隨機數生成器的概念。數字生成器 number generator 它是乙個函式物件,沒有引數。類似於常見的rand 均勻隨機數生成器 uniform random number ge...

opencv隨機數發生器RNG

用opencv做演算法的朋友們肯定為隨機數煩惱過,新版本一直支援隨機數產生器啦,而且還繼續支援之前版本的c格式的函式,不過與時俱進,我這裡介紹c 的rng類。它可以壓縮乙個64位的i整數並可以得到scalar和array的隨機數。目前的版本支援均勻分布隨機數和gaussian分布隨機數。隨機數的產生...

產生隨意隨機數發生器

怎樣利用給定的隨機數發生器產生其它隨意你想得到的隨機數發生器。假定給定的隨機數發生器是變數產生離散變數x 服從某一分布 比如均勻分布。高斯分布等等 隨意你想得到的隨機數發生器滿足分布 y,如果x和 y其概率密度分布函式分布為 g x h y 假定用x 隨機數發生器產生 y隨機數發生器,以下分為2步求...