c+的随机类+; 我想在C++中有一个类,它具有java或C<< /p >中的随机类的功能。
我发现了这个,但它有漏洞,我现在还不能完全修复它们c+的随机类+; 我想在C++中有一个类,它具有java或C<< /p >中的随机类的功能。,c++,random,C++,Random,我发现了这个,但它有漏洞,我现在还不能完全修复它们 您可以指出错误及其修复,或者建议其他实现吗?试试这个:有三个几乎相同的高质量“标准”随机数生成库,您应该尝试按降序查找它们: C++11的 TR1的 Boost的 除了名称空间(std、std::tr1和boost)之外,它们在概念上完全相同,甚至几乎完全相同 每个库定义一组引擎,例如std::mt19937。选择一个(每根线)并播种 一旦你有了一个引擎,你可以使用各种各样的发行版来生成数字,使用你的引擎。常用的分布是[a,b]范围内的均匀
您可以指出错误及其修复,或者建议其他实现吗?试试这个:有三个几乎相同的高质量“标准”随机数生成库,您应该尝试按降序查找它们:
- C++11的
- TR1的
- Boost的
std
、std::tr1
和boost
)之外,它们在概念上完全相同,甚至几乎完全相同
每个库定义一组引擎,例如std::mt19937
。选择一个(每根线)并播种
一旦你有了一个引擎,你可以使用各种各样的发行版来生成数字,使用你的引擎。常用的分布是[a,b]范围内的均匀整数、[0,1]范围内的均匀浮点数,以及几种众所周知的概率分布,如正态分布。我实际上实现了一种分布:,请参阅Random、Random.cpp和MersenneTwister Random是一个抽象类,但与Java不同,我不想在默认情况下实现愚蠢的LCG生成器。它也没有nextGaussian方法。MersenneTwister继承了它
它们对我的库有很多依赖性,但是它们可以很容易地删除,你有大致的想法。你有可用的吗?如果你发现了bug,如果你告诉他们它们是什么,人们就可以更容易地修复它们。关于这些bug的更好的地方可能是在你链接的帖子的评论中。在缺少C++0x,你看过了吗?第一个是原始站点评论中的一个。第一次调用uniform总是给出相同的号码。第二个是uniform(8)中的号码我可能会因此得到一个大数字4253351777@George:可能你忘了正确使用它。PRNG通常需要种子。Thx!那可能就可以了。我会测试它:)