C++ 使用<;随机>;
我在C++11中生成随机数。当我运行代码时C++ 使用<;随机>;,c++,c++11,random,C++,C++11,Random,我在C++11中生成随机数。当我运行代码时 using namespace std; static std::mt19937_64 rng; int main() { rng.seed(11); std::cout << rng() << std::endl; } 使用名称空间std; 静态标准:mt19937\U 64 rng; int main(){ 种子(11); std::cout使用std::统一内部分布来自 例如: #include <r
using namespace std;
static std::mt19937_64 rng;
int main() {
rng.seed(11);
std::cout << rng() << std::endl;
}
使用名称空间std;
静态标准:mt19937\U 64 rng;
int main(){
种子(11);
std::cout使用std::统一内部分布来自
例如:
#include <random>
#include <iostream>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dis(1, 1000);
std::cout << dis(gen) << '\n';
}
#包括
#包括
int main()
{
std::随机_装置rd;
标准:mt19937 gen(rd());
标准:统一内部分布图(11000);
std::cout使用std::统一内部分布来自
例如:
#include <random>
#include <iostream>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dis(1, 1000);
std::cout << dis(gen) << '\n';
}
#包括
#包括
int main()
{
std::随机_装置rd;
标准:mt19937 gen(rd());
标准:统一内部分布图(11000);
std::如果你想让它们均匀分布,就不能使用mod运算符%
。@andre-Nope,模运算符不能生成数字的均匀分布,请检查:试试——注意这是一种不同的语言,所以不是dup(尽管这些答案可以很好地回答).%
严格来说是不正确的,因此,假设完整的范围是[0,100)如果你想%80
这个范围内的随机数,结果将不再是均匀分布的。如果你想让它们均匀分布,请使用mod运算符%
。@andre-Nope,模运算符不会生成均匀分布的数,请检查它:尝试--注意这是一种不同的语言o不是dup(尽管这些答案很好)。%
严格来说是不正确的,因此,假设完整的范围是[0,100)如果你想%80
这个范围内的随机数,结果将不再是均匀分布的。+1便于适应其他类型的分布,这与我的评论中的思考过程不同。哇,感谢代码和所有内容!还有,我如何将这个随机数存储为变量?@user2581872我不知道“我没有收到任何错误。您可能希望将其作为一个单独的问题。@user2581872:多次调用:foo=dis(gen);bar=dis(gen);
+1用于轻松适应其他类型的发行版,这与我的评论中的思考过程不同。哇,感谢代码和一切!还有,我如何将此随机数存储为变量?@user2581872我没有任何错误。您可能想单独问一个问题。@user2581872:多次调用:foo=dis(gen);bar=dis(gen);