c++的随机类

Random class for c++

本文关键字:随机 c++      更新时间:2023-10-16

我想为一个项目在c++中,有一个类的功能,随机类在java或c#

我已经找到了这个,http://www.dreamincode.net/code/snippet342.htm但是它有bug,我现在不能完全修复它们。

你能指出错误和他们的修复,或者建议另一个实现吗?

有三个几乎相同的,高质量的"标准"随机数生成库,您应该尝试按降序查找:

  • c++ 11的<random> .
  • TR1的<tr1/random>
  • Boost的<boost/random.hpp> .

除了名称空间(分别为stdstd::tr1boost)之外,它们在概念上都是相同的,甚至实际上几乎相同。

每个库定义了一组引擎,例如std::mt19937。选择一个(每个线程)并播种。

一旦你有了一个引擎,你就可以使用各种分布来生成数字,使用你的引擎。常用的分布是[a, b]范围内的均匀整数,[0,1]范围内的均匀浮点数,以及一些众所周知的概率分布,如正态分布。

试试这个:http://bedaux.net/mtrand/

我实际上已经实现了一个:http://frigocoder.dyndns.org/svn/Frigo/Math,参见Random, Random.cpp和MersenneTwister

Random是一个抽象类,但与Java不同,我不想在默认情况下实现愚蠢的LCG生成器。它也没有下一个高斯方法。MersenneTwister继承自它

它们对我的库有很多依赖,但是它们可以很容易地被删除,你已经有了大概的想法。