这里来继续探讨C++中的随机数生成问题,这里主要探讨一下均匀分布的生成,均匀分布是可以说是其他的随机生成的基础,同时要注意的这也是一个世界难题,所以实际中使用的均匀分布U(0,1)跟C++ 中的rand()类似也是伪随机数生成的,不过还好的是其实际效果通常还不错。
这里主要做这几件事:列出一些常用的均匀分布的随机数生成方法,分析其特点和对其进行可能的改进,还有就是其他一些自己思考的问题。
在C++中生成生成均匀分布的随机数,可能最先想到的就是(精度较低):
srand(time(NULL);
double randuni()
{
return rand()*1.0/(RAND_MAX*1.0);
}
遵照这个思路,利用我之前在文章“C++大随机整数的产生,排序和查找“中写的随机书生成算法