簡體   English   中英

C ++和Matlab中的隨機函數

[英]random function in C++ and Matlab

我有一個用Matlab編寫的代碼,我是用C ++編寫的,但是我不這樣做並不會得到相同的結果。

問題是我在代碼的3個部分中使用了隨機函數,當我固定了隨機函數時,兩個代碼給出了相同的輸出。

如果有人有任何想法請幫助我。

rand功能的實現將有所不同。

您可以通過rng控制Matlab版本。

在C ++方面,我建議使用(C ++ 11) <random> (或者,如果您的環境缺乏不錯的C ++ 11庫支持,請使用Boost的版本 )。 我目前無法測試,但似乎雙方都支持梅森·特納斯(Mersenne Twister)。 幸運的是,如果您選擇相同的種子,則實現將生成相同的數字。

我現在沒有測試,因為這里沒有Matlab。

因為rand()函數給您相同的數字。 最好使用srand (time(NULL)); 在調用rand()函數之前。 srand (time(NULL)); 使rand()產生不同的輸出。

用於使用srand (time(NULL)); 函數,您應該在代碼中添加#include <time.h>#include <ctime>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM