Tag: Visual Studio的2013年

在Linux中,<random>生成相同的数字,但在Windows中不生成

下面的代码是为了在区间[1,100]中生成五个伪随机数的列表。 我使用time(0)对default_random_engine进行种子处理,这会在unix时间返回系统时间 。 当我使用Microsoft Visual Studio 2013在Windows 7上编译和运行此程序时,它按预期工作(请参见下文)。 当我用Arch Linux搭配g ++编译器的时候,它的performance很奇怪。 在Linux中,每次都会生成5个数字。 最后4个数字在每次执行时都会有所不同(通常情况下),但第一个数字将保持不变。 Windows和Linux 5次执行的输出示例: | Windows: | Linux: ————————————— Run 1 | 54,01,91,73,68 | 25,38,40,42,21 Run 2 | 46,24,16,93,82 | 25,78,66,80,81 Run 3 | 86,36,33,63,05 | 25,17,93,17,40 Run 4 | 75,79,66,23,84 | 25,70,95,01,54 Run 5 | 64,36,32,44,85 | 25,09,22,38,13 除了这个谜之外,Linux上的第一个数字会周期性地增加一个。 在得到上述结果之后,我等了大约30分钟,再次尝试发现第一个数字已经改变,现在总是生成一个26,并且定期递增1,现在是32。随着time(0)的变化time(0) 。 为什么第一个数字很less在运行中发生变化,然后当它增加1? 代码。 […]