【发布时间】:2021-11-12 10:54:33
【问题描述】:
我编译了完全相同的代码,在两种不同的环境(Linux 和 Visual Studio)中生成随机数。但我注意到输出是不同的。我在网上搜索并了解这两种实现会生成不同的随机数。但我需要 Linux 生成与 Visual Studio 生成的随机数相同的随机数。
那么,如何让两种不同的环境(Linux 和 Visual Studio)生成相同的随机数。任何想法。
我的代码:
void mix_dataset(array<array<int, 20>, 5430>& array_X_dataset, array<int, 5430>& array_Y_dataset) {
// size_t len = array_X_dataset.size();
// for (size_t i = 0; i < len; ++i) {
// size_t swap_index = rand() % len;
mt19937 engine;
engine.seed(3);
for (size_t i = 0; i < 5430; ++i) {
size_t swap_index = engine() % 5430;
if (i == swap_index)
continue;
array<int, 20> data_point{ };
data_point = array_X_dataset[i];
array_X_dataset[i] = array_X_dataset[swap_index];
array_X_dataset[swap_index] = data_point;
int Y = array_Y_dataset[i];
array_Y_dataset[i] = array_Y_dataset[swap_index];
array_Y_dataset[swap_index] = Y;
}
}
int main(){
srand(3);
mix_dataset(array_X_dataset, array_Y_dataset);
}
【问题讨论】:
标签: c++ linux visual-studio environment