Jiv*_*son 8 c++ random stl visual-studio-2010 c++11
我编写了传统的C++代码,用于生成统一的随机数和高斯分布.它实现了George Marsaglia博士非常快的算法.(我正在使用它们为蒙特卡洛高维集成生成skazillions样本.)
我认为重新考虑生成器和分发以使用新的C++ 11 std :: random方案是个好主意.
任何人都可以指向我的std :: random的教程或一个很好的参考,其中包括如何扩展它的必要信息?示例代码是理想的.
UPDATE.谢谢大家的帮助.我现在已经为Visual C++ 2010附带的std :: normal_distribution写了一个替代品.在我的机器上,当由默认引擎提供时,替换速度提高了26%.我有点失望,差异不大,但嘿,这是我的问题.:-)
N3376是最新的C++标准草案(这是后C++ 11,但它是C++ 11的优秀快照).
所有C++ 11-random都在:26.5随机数生成[rand]
26.5.1.4随机数引擎要求[rand.req.eng]具有统一随机数生成器需要满足的所有要求.
26.5.1.6随机数分布要求[rand.req.dist]具有高斯分布需要满足的所有要求.
26.5.8.5.1类模板normal_distribution [rand.dist.norm.normal]是描述std定义的高斯分布的部分.
C++ 11 <random>
非常像STL,因为它设置了随机数生成器(容器)和随机分布(算法)的要求,然后客户端可以混合和匹配这两者.这是一个非常酷的设计.
对不起,我不知道一个好的教程.C++标准是一个很好的参考和糟糕的教程.然而,你显然在随机数领域受过良好教育.所以假设你对C++有所了解,那么C++标准可能并不算太糟糕.
<random>
如果您想仔细阅读其源代码,可以使用开源实现(例如).一个例子是libc ++.他们要求的是,如果您重复使用任何代码,则会保留其版权声明.
编辑
您是唯一有资格编写本教程的人.:-)