Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c+的随机类+; 我想在C++中有一个类,它具有java或C<< /p >中的随机类的功能。_C++_Random - Fatal编程技术网

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!那可能就可以了。我会测试它:)