【发布时间】:2015-06-05 18:02:42
【问题描述】:
如何从区间 [0, 1] 中得到一个均匀分布的随机数?
我目前正在使用以下代码,但它是用 C 语言编写的,我想知道如何用 C++ 代替。
double RND()
{
return ((double)rand()/RAND_MAX);
}
【问题讨论】:
-
虽然
rand()/RAND_MAX读了很多,但还是不统一。 -
1.是什么让您认为这不适用于 C++?
-
我想找一个统一的随机数。我使用上面的代码来生成那个数字。但是,如果我创建一个 C++ 函数会更好
-
在 C++11 中使用随机数库。 Mersenne twister 是一个很好的起点。
-
这种类型的基线函数将在 C++ 中保持原样。如果要将其转换为方法,则需要定义一个类来保存该函数。如果您已经有一个需要此方法的类,只需更改函数语句行,使其成为现有类的成员函数。
标签: c++