利用c++11 random库产生随机数(非确定性方法和确定性方法)

1、非确定性方法

//产生非确定随机数(每次运行产生的随机数不一样)
#include <iostream>
#include <random>

    
int main()
{
   
    std::random_device rd;
    
    std::uniform_int_distribution<int> dist(0, 10);
    for (int n = 0; n < 10; ++n)
        std::cout<<dist(rd)<<" "; 
    std::cout<<std::endl;
    return 0;
}

运行结果:(每次运行不一样)

9 1 4 3 2 10 0 10 4 6

2、确定性方法

//产生确定随机数(多次次运行时每次产生的随机数一样)
#include <iostream>
#include <random>

    
int main()
{
    std::default_random_engine e; 
    std::uniform_int_distribution<unsigned> u(0, 9); //随机数分布对象 
    for (size_t i = 0; i < 10; ++i)  //生成范围为0-9的随机数序列 
       std::cout << u(e) << " ";
    std::cout << std::endl;
    
    return 0;
}

运行结果:(多次运行时,每次结果一样)

0 1 7 4 5 2 0 6 6 9

发布了60 篇原创文章 · 获赞 10 · 访问量 3711

猜你喜欢

转载自blog.csdn.net/sinat_18811413/article/details/104482517