0
我想用C++生成N個獨立的隨機數集。多個獨立的隨機數集
我試過std::random
,但是我只能通過聲明多個default_random_engines來實現。它的工作原理,但它不足以我的情況,因爲我不知道我需要的獨立集的數量。
這很重要,因爲我需要知道每組隨機生成的數字服從所選的分佈,我不能只對所有數字使用相同的函數。
我想用C++生成N個獨立的隨機數集。多個獨立的隨機數集
我試過std::random
,但是我只能通過聲明多個default_random_engines來實現。它的工作原理,但它不足以我的情況,因爲我不知道我需要的獨立集的數量。
這很重要,因爲我需要知道每組隨機生成的數字服從所選的分佈,我不能只對所有數字使用相同的函數。
我會說你不需要多個隨機引擎,你需要的是多個分佈。
像
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);
首選'std :: mt19937'到'std :: default_random_engine' 。 – 2015-02-06 01:00:20
你能剛補種以毫秒當前時間爲每個新集的單臺發電機? – 2015-02-05 23:36:29
如果我選擇提前生成所有的隨機數集,它就可以工作。但是,我在飛行中生成數字。例如。 設置1:1 2 3 4 集2:2 3 4 5 ,然後再生成一個多爲SET1,使其: 設置1:1 2 3 4 5 所以我需要確保無論何時我選擇在集合中添加一個數字,它必須服從它的分佈 – user4168715 2015-02-05 23:40:07
在生成一個集合之前,還要將種子設置爲當前時間。那麼每一代人都是唯一接種的。 – 2015-02-05 23:42:50