zoukankan      html  css  js  c++  java
  • C++ 11 笔记 (六) : 随机数

    以前生成一个随机数都是这样:

    1 srand(time(NULL));
    2 rand();

    在C++11中,标准库中增加了随机数引擎 std::default_random_engine 这个好东西,然后我们就可以这样:

    1 std::default_random_engine rand_default;
    2 rand_default();

    另外可以指定随机数种子,有两种方式:

    std::default_random_engine rand_default(100); //构造函数指定
    
    rand_default.seed(100); //seed成员函数指定

    生成的随机数是 unsigned int 类型的。

    以前生成一个分布是这样:

    1 int random(int low, int high)
    2 {
    3     return rand() % (high - low + 1) + low;
    4 }

    在C++11中,标准库中增加了随机数分布引擎 std::uniform_int_distribution 这个好东西,然后我们就可以这样:

    1 std::uniform_int_distribution<int> rand_uniform(1, 10);
    2 rand_uniform(rand_default);

    随机数分布引擎需要使用随机数引擎生成随机数。

    由于我是一个充满探(dou)索(bi)精神的人,挑战了一下极限:

    1 std::uniform_int_distribution<int> rand_uniform(10, 1);

    果断报错了。。所以构造函数是(下限,上限)。。。

  • 相关阅读:
    [Cocos2d-x]Cocos2d-x开发中C++调用Object-c
    [数据结构]基本概念
    [Cocos2d-x]Mac下运行HelloCpp For Android
    [Android] JDK , NDK , JNI
    [Cocos2d-x]坐标系
    [Android]mac下开发环境搭建
    [Cocos2d-x]博客推荐
    nyoj-506-洗澡
    nyoj-479-Coprimes
    nyoj-464-Cookies
  • 原文地址:https://www.cnblogs.com/wolfred7464/p/3687355.html
Copyright © 2011-2022 走看看