产生随机数有很多方法
首先是自己构造RNG的方法
RNG()
RNG(uint16 state)
后一个带state参数的构造器可以指定初始状态,类似C++中srand的种子
如果state=0,则回到前一个默认构造器
构造好之后可以使用RNG对象很多方法来获取随机数
比较常用的比如
//均匀分布,高斯分布的随机数
RNG::uniform
RNG::operator ushort()
RNG::operator double()
……
其次是使用theRNG()获取默认的RNG对象
randu
randn
两个函数获取或填充矩阵时,使用的就是默认的RNG对象
使用默认RNG对象的一个特点是,每次运行时构造出来的随机数都是一样的
RNG rng(time(NULL))
使用time函数记得#include <time.h>
首先是自己构造RNG的方法
RNG()
RNG(uint16 state)
后一个带state参数的构造器可以指定初始状态,类似C++中srand的种子
如果state=0,则回到前一个默认构造器
构造好之后可以使用RNG对象很多方法来获取随机数
比较常用的比如
//均匀分布,高斯分布的随机数
RNG::uniform
RNG::gaussian
RNG::fill
unsigned int RNG::operator()
RNG::operator ushort()
RNG::operator double()
……
其次是使用theRNG()获取默认的RNG对象
经测试,theRNG()与默认构造器RNG()构造出来的对象是一样的
randu
randn
两个函数获取或填充矩阵时,使用的就是默认的RNG对象
使用默认RNG对象的一个特点是,每次运行时构造出来的随机数都是一样的
这个有利有弊,每次构造出来的随机数一样有助于程序测试
RNG rng(time(NULL))
使用time函数记得#include <time.h>