c++的随机类
Random class for c++
我想为一个项目在c++中,有一个类的功能,随机类在java或c#
我已经找到了这个,http://www.dreamincode.net/code/snippet342.htm但是它有bug,我现在不能完全修复它们。
你能指出错误和他们的修复,或者建议另一个实现吗?
有三个几乎相同的,高质量的"标准"随机数生成库,您应该尝试按降序查找:
- c++ 11的
<random>
. - TR1的
<tr1/random>
- Boost的
<boost/random.hpp>
.
除了名称空间(分别为std
、std::tr1
和boost
)之外,它们在概念上都是相同的,甚至实际上几乎相同。
每个库定义了一组引擎,例如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继承自它
它们对我的库有很多依赖,但是它们可以很容易地被删除,你已经有了大概的想法。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 为什么 Serial.println(<char[]>);返回随机字符?
- 字符串-C++后显示的随机字符
- 循环中的随机函数
- 在c++构造函数中使用随机字符串生成器
- 使用std::mt19937从字符串中返回一个随机单词
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- 如何在C++中高效地构造随机骰子
- 在类中使用随机生成器时出现性能问题
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 将字符随机转换为大写的函数
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 如何生成一个随机的 n 位数,其中 n 是任意的
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- 如何使用要传递给 mt19937 的可选随机种子参数设计函数
- 在C++中随机生成 20 个非重复数字
- GCC:随机构建导致执行期间分段错误
- 如何使用 SML 随机生成八进制元组
- 当我尝试使用它时,Scanf 会抛出一个随机异常(scanf_s 也是如此)
- 将正态随机变量与任意 RHO(corrcoef) 相关联