2015-02-05 56 views
0

我想用C++生成N個獨立的隨機數集。多個獨立的隨機數集

我試過std::random,但是我只能通過聲明多個default_random_engines來實現。它的工作原理,但它不足以我的情況,因爲我不知道我需要的獨立集的數量。

這很重要,因爲我需要知道每組隨機生成的數字服從所選的分佈,我不能只對所有數字使用相同的函數。

+0

你能剛補種以毫秒當前時間爲每個新集的單臺發電機? – 2015-02-05 23:36:29

+0

如果我選擇提前生成所有的隨機數集,它就可以工作。但是,我在飛行中生成數字。例如。 設置1:1 2 3 4 集2:2 3 4 5 ,然後再生成一個多爲SET1,使其: 設置1:1 2 3 4 5 所以我需要確保無論何時我選擇在集合中添加一個數字,它必須服從它的分佈 – user4168715 2015-02-05 23:40:07

+0

在生成一個集合之前,還要將種子設置爲當前時間。那麼每一代人都是唯一接種的。 – 2015-02-05 23:42:50

回答

3

我會說你不需要多個隨機引擎,你需要的是多個分佈。

std::default_random_engine generator; 

std::uniform_real_distribution<double> distributionA(0.0,1.0); 
std::uniform_real_distribution<double> distributionB(-1.0,2.0); 
std::uniform_real_distribution<double> distributionC(-7.0,0.5); 

及更高採樣

double a = distributionA(generator); 
double b = distributionB(generator); 
double c = distributionC(generator); 
+4

首選'std :: mt19937'到'std :: default_random_engine' 。 – 2015-02-06 01:00:20