我想要一个C ++项目,有一个类具有Random类在java或c#中的功能
我找到了这个,http://www.dreamincode.net/code/snippet342.htm但它有错误,我现在无法解决它们。
你能指出错误及其修复,或建议另一种实现吗?
答案 0 :(得分:8)
有三个几乎相同的,高质量的“标准”随机数生成库,您应该尝试按降序查找:
<random>
。<tr1/random>
<boost/random.hpp>
。除命名空间(std
,std::tr1
和boost
外),它们在概念上完全相同,甚至几乎完全相同。
每个库都定义了一组引擎,例如std::mt19937
。选择一个(每个线程)并播种。
拥有引擎后,您可以使用各种发行版来使用引擎生成数字。经常使用的分布是[a,b]范围内的均匀整数,[0,1]范围内的均匀浮点数,以及正态分布等几种众所周知的概率分布。
答案 1 :(得分:4)
答案 2 :(得分:1)
我实际上已经实现了一个:http://frigocoder.dyndns.org/svn/Frigo/Math,请参阅Random,Random.cpp和MersenneTwister
Random是一个抽象类,但与Java不同,我不想默认实现愚蠢的LCG生成器。它也没有nextGaussian方法。 MersenneTwister继承了它。
他们对我的库有很多依赖关系,但是可以很容易地删除它们,并且你有一般的想法。