隨機數生成器

2022-05-01 13:18:07 字數 1488 閱讀 2917

標頭檔案

內容 rand,srand函式和rand_max常量

rand_max 在windows系統中為32767 ,在類unix系統中為2147483647

rand()函式返回乙個0~rand_max的隨機整數

srand(seed)函式 接受unsigned int 型別的引數seed,以seed為隨機種子,rand()基於此生成隨機數,如果不寫srand函式,則種子預設為1

若要產生隨機實數,先產生較大的隨機整數

隨機生成 n<=10^5個絕對值在10^9之內的整數

//

隨機生成整數序列

#includeusing

namespace

std;

#define maxn 100000+10

inta[maxn];

int random(int

n)int

main()

隨機生成 m個 [1,n]的子區間,這些區間可作為資料結構題目的操作序列

//

隨機生成區間列

#includeusing

namespace

std;

#define maxn 100000+10

int random(int

n)int

main()

return0;

}

隨機生成一棵n個節點的樹,用n個點,n-1條無向邊形式輸出,每條邊附帶乙個10^9以內的權值

//

隨機生成樹

#includeusing

namespace

std;

#define maxn 100000+10

int random(int

n)int

main()

return0;

}

隨機生成一張n個點m條邊的無向圖,圖中不存在重邊自環,且必須連通,保證 5<=n<=m<=n*(n-1)/4<=10^6

//

隨機生成圖

#includeusing

namespace

std;

#define maxn 10000

intn,m;

pair

e[maxn];

map< pair,bool >h;

int random(intx)

intmain()

for(int i=n;i<=m;i++)

while(x==y||h[make_pair(x,y)]);

e[i]=make_pair(x,y);

h[e[i]]=h[make_pair(y,x)]=1

; }

random_shuffle(e+1,e+1+m);

for(int i=1;i<=m;i++)

return0;

}

MATLAB隨機數生成器

1 rand 生成 0,1 區間上均勻分布的隨機數 基本語法 rand m,n,p 生成排列成m n p 多維向量的隨機數。如果只寫m,則生成m m矩陣 如果引數為 m,n 可以省略方括號。2 randn 生成服從標準正太分布 均值為0,方差為1 的隨機數 基本語法 randn m,n,p,解釋同1...

隨機數生成器,隨機種子

遊戲中經常要用到隨機數,但如果乙個沒有隨機種子的的生成器,就沒法重複之前的隨機數了。js的math.random就用不了隨機種子,只好自己弄了乙個,有了隨機種子,每次只要傳入相同的種子,都會得到同樣的隨機數。直接 function seededrandom seed,min,max 這是一種偽隨機數...

boost基礎 隨機數生成器

include for time 0 boost minstd rand generator time 0 用於生成 隨機數 boost uniform int uni dist 0,5 指定均勻分布的區間,包含兩個端點,取整數值 boost variate generator minstd ran...