• 随机数与随机颜色


    RNG类是opencv里C++的随机数产生器。它可产生一个64位的int随机数。目前可按均匀分布和高斯分布产生随机数。随机数的产生采用的是Multiply-With-Carry算法和Ziggurat算法。

    1.1.1 产生一个随机数

    RNG可以产生3种随机数
    RNG(int seed)         使用种子seed产生一个64位随机整数,默认-1

      随机数种子

        

    众所周知,所谓随机数其实是伪随机数,所谓的‘伪’,意思是这些数其实是有规律的,只不过因为算法规律太复杂,很难看出来。

    所谓巧妇难为无米之炊,再厉害的算法,没有一个初始值,它也不可能凭空造出一系列随机数来,诶,我们说的种子就是这个初始值。

    random随机数是这样生成的:我们将这套复杂的算法(是叫随机数生成器吧)看成一个黑盒,把我们准备好的种子扔进去,它会返给你两个东西,一个是你想要的随机数,另一个是保证能生成下一个随机数的新的种子,把新的种子放进黑盒,又得到一个新的随机数和一个新的种子,从此在生成随机数的路上越走越远。



    RNG::uniform( )      产生一个均匀分布的随机数
    RNG::gaussian( )    产生一个高斯分布的随机数

    RNG::uniform(a, b )  返回一个[a,b)范围的均匀分布的随机数,a,b的数据类型要一致,而且必须是int、float、double中的一种,默认是int。

    RNG::gaussian( σ)   返回一个均值为0,标准差为σ的随机数。

                                     如果要产生均值为λ,标准差为σ的随机数,可以λ+ RNG::gaussian( σ)

    随机颜色与随机数

       先创建随机数对象

      再使用对象.uniform(,)

  • 相关阅读:
    CCF真题之Z字形扫描
    CCF真题之门禁系统
    A
    安装 Spring 框架库
    安装 Apache Commons Logging API步骤
    Manven下载
    669. 修剪二叉搜索树
    UnixLinux | 总结笔记 |文件系统
    561. 数组拆分 I
    620. 有趣的电影
  • 原文地址:https://www.cnblogs.com/KAVEI/p/14616857.html
Copyright © 2020-2023  润新知