• Boost Random


    #include "MainScene.h"
    #include "SimpleAudioEngine.h"
    #include <iostream>
    #include <string.h>
    using namespace std;
    
    #include "opencv.hpp"
    #include <opencv2/features2d.hpp>
    #include "opencv2/highgui.hpp"
    using namespace cv;
    
    extern "C"
    {
    #include "SDL.h"
    
    #include <libavutil/imgutils.h>
    #include <libavutil/parseutils.h>
    #include <libswscale/swscale.h>
    #include <libavcodec/avcodec.h>
    #include <libavformat/avformat.h>
    #include <libavformat/avio.h>
    #include <libavutil/file.h>
    #include <libavdevice/avdevice.h>
    }
    #include <boost/random.hpp>
    #include <boost/random/random_device.hpp>
    
    Scene* MainScene::createScene()
    {
        return MainScene::create();
    }
    
    
    bool MainScene::init()
    {
        if ( !Scene::init() )
        {
            return false;
        }
    
        visibleSize = Director::getInstance()->getVisibleSize();
        Vec2 origin = Director::getInstance()->getVisibleOrigin();
        
        //string filename = "I:/ImageGrid/135708z4u8eha6gucne2ug.jpg";
        //string filename = "D:/PriPro/Pro/simulator/win32/src/client/res/log/Log_1.png";
        string filename = "H:/libcocos2d-x/res/201212211612386.jpg";
    
        auto s = Sprite::create("201212211612386.jpg");
        s->setScale(0.5);
        s->setPosition3D(Vec3(400, 300, -300));
        this->addChild(s);
    
    
        //1、随机数发生器:boost::random::mt19937,生成伪随机数
        //产生随机数类型:boost::uint32_t
        {
            std::time_t now = std::time(0);
            boost::random::mt19937 gen(now);
    
            //输出最大值和最小值
            //std::cout << boost::random::mt19937::min() << ":" << boost::random::mt19937::max() << std::endl;
    
            //产生5个随机数,
            for (int i = 0; i < 5; ++i)
            {
                std::cout << gen() << "-";
            }
            //std::cout << std::endl;
    
            //产生5个随机数,并填充容器
            std::vector<int> vec(5);
            gen.generate(vec.begin(), vec.end());
            for (auto& i : vec)
            {
                std::cout << " 随机数发生器:boost::random::mt19937,生成伪随机数 "<< i << "-";
            }
            std::cout << std::endl;
        }
    
        //2、随机数发生器 + 随机数分布器:
        //实现的是符合某个特定的区域或符合某种分布的随机数
        {
            //伯努利分布:在0/1中随机产生一个数,就像抛硬币,不是0,就是1,但是是随机的。
            //定义一个随机数生成器
            boost::random::mt19937 gen(time(0));
            //定义一个随机数分布器
            boost::random::bernoulli_distribution<> dist;
            //测试产生随机数
            for (int i = 0; i < 10; ++i)
            {
                std::cout <<"随机数发生器 + 随机数分布器: "<< dist(gen) << std::endl;
            }
        }
    
        {
            //产生某个整数域范围内的随机数,比如产生0~100之间的随机数
            //定义一个随机数生成器
            boost::random::mt19937 gen(time(0));
            boost::random::uniform_int_distribution<> dist(0, 100);
            //测试产生随机数
            for (int i = 0; i < 10; ++i)
            {
                std::cout << "产生某个整数域范围内的随机数 "<<dist(gen) << std::endl;
            }
        }
    
        {
            //产生0~1之间的小数
            //定义一个随机数生成器
            boost::random::mt19937 gen(time(0));
            boost::random::uniform_01<> dist;
            //测试产生随机数
            for (int i = 0; i < 10; ++i)
            {
                std::cout << "产生0~1之间的小数 "<<dist(gen) << std::endl;
            }
        }
    
        {
            //小整数域上的均匀分布
            boost::random::mt19937 gen(time(0));
            boost::random::uniform_smallint<> dist(1, 100);
            //测试产生随机数
            for (int i = 0; i < 10; ++i)
            {
                std::cout <<"小整数域上的均匀分布 "<< dist(gen) << std::endl;
            }
        }
    
        {
            //实现了任意区间的实数分布随机数,类型是double类型
            boost::random::mt19937 gen(time(0));
            boost::random::uniform_real_distribution<> dist(1.0, 100.0);
            //测试产生随机数
            for (int i = 0; i < 10; ++i)
            {
                std::cout << " 任意区间的实数分布随机数 "<<dist(gen) << std::endl;
            }
        }
    
        //3.变量发生器,作用:只是为了方便使用
        //是随机数发生器和分布器的组合,示例:
        {
            //定义一个随机数发生器
            boost::random::mt19937 mt(time(0));
            //定义一个随机数分布器
            boost::random::uniform_smallint<> us(1, 100);
            //定义一个变量发生器,注意:参数2分布器的参数形式不能是指针或是引用!
            boost::random::variate_generator<boost::random::mt19937&, boost::random::uniform_smallint<> > gen(mt, us);
            //测试生成10随机数
            for (int i = 0; i < 10; ++i)
            {
                std::cout << "变量发生器,作用:只是为了方便使用 "<<gen() << std::endl;
            }
        }
    
        //4、随机数生成器:random_device,真随机数
        {
            //最大最小值:
            std::cout << boost::random::random_device::min() << ":" << boost::random::random_device::max() << std::endl;
    
            boost::random::random_device gen;
            for (int i = 0; i < 20; ++i)
            {
                std::cout <<"随机数生成器:random_device,真随机数 "<< gen() << std::endl;
            }
        }
    
    
        return true;
    }

    结果

    H:libcocos2d-xuildDebug>libcocos.exe
    Ready for GLSL
    Ready for OpenGL 2.0

    {
            gl.version: 4.6.13559 Compatibility Profile Context 26.20.12028.2
            gl.supports_NPOT: true
            cocos2d.x.version: cocos2d-x-3.17.2
            cocos2d.x.compiled_with_profiler: false
            cocos2d.x.build_type: DEBUG
            cocos2d.x.compiled_with_gl_state_cache: true
            gl.max_texture_size: 16384
            gl.supports_OES_packed_depth_stencil: false
            gl.vendor: ATI Technologies Inc.
            gl.renderer: AMD Radeon RX 580 2048SP
            gl.max_texture_units: 160
            gl.supports_ETC1: false
            gl.supports_S3TC: true
            gl.supports_ATITC: false
            gl.supports_PVRTC: false
            gl.supports_BGRA8888: false
            gl.supports_discard_framebuffer: false
            gl.supports_vertex_array_object: true
            gl.supports_OES_map_buffer: false
            gl.supports_OES_depth24: false
    }


    536369200-340623271-4276119838-1931111883-4078776906- 随机数发生器:boost::random::mt19937,生成伪随机数 1938412408- 随机数发生器:boost::random::mt19937,生成伪随机数 919002582- 随机数发生器:boost::random::mt19937,生成伪随机数 -404798720- 随机数发生器:boost::random::mt19937,生成伪随机数 -277944272- 随机数发生器:boost::random::mt19937,生成伪随机数 -328668786-
    随机数发生器 + 随机数分布器: 1
    随机数发生器 + 随机数分布器: 1
    随机数发生器 + 随机数分布器: 0
    随机数发生器 + 随机数分布器: 1
    随机数发生器 + 随机数分布器: 0
    随机数发生器 + 随机数分布器: 1
    随机数发生器 + 随机数分布器: 1
    随机数发生器 + 随机数分布器: 0
    随机数发生器 + 随机数分布器: 0
    随机数发生器 + 随机数分布器: 0
    产生某个整数域范围内的随机数 12
    产生某个整数域范围内的随机数 8
    产生某个整数域范围内的随机数 100
    产生某个整数域范围内的随机数 45
    产生某个整数域范围内的随机数 95
    产生某个整数域范围内的随机数 45
    产生某个整数域范围内的随机数 21
    产生某个整数域范围内的随机数 91
    产生某个整数域范围内的随机数 94
    产生某个整数域范围内的随机数 93
    产生0~1之间的小数 0.124883
    产生0~1之间的小数 0.0793075
    产生0~1之间的小数 0.995612
    产生0~1之间的小数 0.449622
    产生0~1之间的小数 0.949664
    产生0~1之间的小数 0.451322
    产生0~1之间的小数 0.213972
    产生0~1之间的小数 0.90575
    产生0~1之间的小数 0.935286
    产生0~1之间的小数 0.923476
    小整数域上的均匀分布 1
    小整数域上的均匀分布 72
    小整数域上的均匀分布 39
    小整数域上的均匀分布 84
    小整数域上的均匀分布 7
    小整数域上的均匀分布 9
    小整数域上的均匀分布 83
    小整数域上的均匀分布 77
    小整数域上的均匀分布 25
    小整数域上的均匀分布 11
     任意区间的实数分布随机数 13.3634
     任意区间的实数分布随机数 8.85145
     任意区间的实数分布随机数 99.5656
     任意区间的实数分布随机数 45.5126
     任意区间的实数分布随机数 95.0168
     任意区间的实数分布随机数 45.6809
     任意区间的实数分布随机数 22.1832
     任意区间的实数分布随机数 90.6693
     任意区间的实数分布随机数 93.5933
     任意区间的实数分布随机数 92.4241
    变量发生器,作用:只是为了方便使用 1
    变量发生器,作用:只是为了方便使用 72
    变量发生器,作用:只是为了方便使用 39
    变量发生器,作用:只是为了方便使用 84
    变量发生器,作用:只是为了方便使用 7
    变量发生器,作用:只是为了方便使用 9
    变量发生器,作用:只是为了方便使用 83
    变量发生器,作用:只是为了方便使用 77
    变量发生器,作用:只是为了方便使用 25
    变量发生器,作用:只是为了方便使用 11
    0:4294967295
    随机数生成器:random_device,真随机数 3184181887
    随机数生成器:random_device,真随机数 1839758307
    随机数生成器:random_device,真随机数 930484113
    随机数生成器:random_device,真随机数 2087181485
    随机数生成器:random_device,真随机数 901289463
    随机数生成器:random_device,真随机数 2204950096
    随机数生成器:random_device,真随机数 1487585537
    随机数生成器:random_device,真随机数 1386460697
    随机数生成器:random_device,真随机数 2340326506
    随机数生成器:random_device,真随机数 596825156
    随机数生成器:random_device,真随机数 2696036027
    随机数生成器:random_device,真随机数 380201607
    随机数生成器:random_device,真随机数 3070663986
    随机数生成器:random_device,真随机数 2850338511
    随机数生成器:random_device,真随机数 1854585580
    随机数生成器:random_device,真随机数 464957364
    随机数生成器:random_device,真随机数 2378991457
    随机数生成器:random_device,真随机数 3082276196
    随机数生成器:random_device,真随机数 3170197326
    随机数生成器:random_device,真随机数 646490642
    cocos2d: QuadCommand: resizing index size from [-1] to [2560]

  • 相关阅读:
    Codeforces Round #605 (Div. 3)E
    Codeforces Round #628 (Div. 2)
    Codeforces Round #627 (Div. 3)
    AC自动机,知识点+hdu模板题
    Tire树,hdu2846,hdu4825
    Educational Codeforces Round 83 (Rated for Div. 2)
    分层最短路
    初入mysql的学习
    赛后总结
    Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) D
  • 原文地址:https://www.cnblogs.com/YZFHKMS-X/p/13963762.html
Copyright © 2020-2023  润新知