C++随机数发生器

新手上路,请多包涵
关于C++随机数发生器的疑惑

代码如下

#include <iostream>  
#include <random>  
int main() {  
 std::random_device rd;  
 std::mt19937 gen(rd());  
 std::uniform_int_distribution<> distribution(0,10);  
 std::cout<<distribution(gen);  
 return 0;  
}

该代码编译生成程序之后在git自带的bash下执行可以正常生成随机数。但是在cmd和powershell下却每次得到的都是一样的数。
想请问一下各位大佬这是什么原因。

阅读 2.2k
2 个回答

mac命令行执行没问题,是不是命令终端跟g++编译器之间的问题
image.png

std::random_device

std::random_device 并不保证一定是“真”随机数。有些平台/编译器/库做不到真随机,只有伪随机,此时每次出来的就都是同一个序列了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进