用于高斯过程的准随机数生成器
quasi random number generator for gaussian process
我正在尝试按照对数正态过程(即 X_t = X_(t-1) exp( drift * dt + sigma*GaussianRandom*sqrt(dt))
)。我想使用准随机数来获得更快的收敛。
我的理解是我需要一个 1200 维准随机数生成器。在每个时间步长,我都使用X_t来计算其他一些变量,因此我需要所有 1200 个点,我不能跳到单个端点并降低维度。
我的问题是:
-
在如此高的维度下,使用准随机数与伪随机数相比,我会有任何优势。
-
有人可以指出我一些可以帮助我生成准随机数的C++代码。
在如此高的维度下,使用准随机数与伪随机数相比,我会有任何优势。
与好的伪随机数生成器相比,1200 不是一个高维度。你需要的是一个好的伪随机数生成器,这几乎排除了rand()
。
有人可以指出我一些可以帮助我生成准随机数的C++代码。
这个问题隐含地假设你不能使用 PRNG。你可以,只要它有一个很长的重复并且表现出非常好的行为。梅森捻线机将足以满足您的需求(但现在甚至有更好的需求)。MT有很多实现,但如果你可以使用C++11,MT是内置于语言中的。解决此问题的最简单方法是使用 C++11 随机数生成器。请参阅 http://en.cppreference.com/w/cpp/numeric/random 。
我不能回答你的第一个问题。
对于第二个:看看GNU科学库。代码是 C 语言的,结构良好,因此您可以轻松地编写包装类(如果需要)。
我会拿gsl_rng_mt19937或gsl_rng_ranlxd2并修改它们。我更喜欢gsl_rng_ranlxd2(如果计算时间不计量)。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 制作具有平均值的随机数生成器
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 尝试在 c++ 中创建随机数生成器并收到错误
- 存储并重新加载随机数生成器状态
- 作为随机数生成器的争用条件
- 播种随机数生成器以使用分叉的好方法是什么?
- 随机数生成器的性能因平台而异
- 随机数生成器的种子和状态有什么区别?
- RcppShark 随机森林示例引发有关随机数生成器的异常
- C++多个实例的随机数生成器组种子中增强
- C++随机数生成器仅生成 0 - C++ 11
- GSL+OMP:C++中的线程安全随机数生成器
- 贪吃蛇游戏 - 食物瓷砖的随机数生成器
- 随机数生成器在 C++ 用于 skipList.
- RSA 加密和解密期间的随机数生成器要求
- 如何使用 cpp 设置随机数生成器的语法?
- 产生相同结果的随机数生成器
- C++随机数生成器通常在 Visual Studio 中运行程序时在 2 次后停止生成数字
- 用于高斯过程的准随机数生成器