Matlab隨機數生成器中的小技巧

2021-10-06 06:54:20 字數 418 閱讀 9666

最近在伺服器端使用matlab時,發現每次執行生成的隨機數序列都一樣,這讓人十分吃驚。跟其他程式語言類似,matlab產生的隨機數是偽隨機數,實際上是根據乙個隨機數序列生成的,不具有真實的隨機性,但可以模擬隨機數生成過程,因此從原理上來講,每次執行生成的隨機數序列不應該完全相同。那麼我遇到的問題是怎麼回事呢?

我嘗試在自己的pc上生成隨機數,每次呼叫得到的結果又都不相同,這是合理的,也符合預期。經過一系列思考,終於發現了問題所在。我在伺服器端是採用後台執行的方式,每次跑程式其實都是新啟動matlab。matlab中隨機數生成的種子是在啟動matlab時確定的,因此出現了我遇到的問題。

利用rng函式可解決這一問題。可在matlab中輸入help rng檢視完整幫助文件。

以下命令

rng('shuffle')

可基於當前系統時間設定初始種子。

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...

隨機數生成器

標頭檔案 內容 rand,srand函式和rand max常量 rand max 在windows系統中為32767 在類unix系統中為2147483647 rand 函式返回乙個0 rand max的隨機整數 srand seed 函式 接受unsigned int 型別的引數seed,以see...

隨機數生成器,隨機種子

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