rand()函数产生随机数的原理是什么? 生成的伪随机数它的特点和缺点是什么?
请不要直接百度哈,能够通俗易懂的最好了。本帖最后由 梦醒尸还魂↘___ 于 2014-4-26 15:31 编辑
这是我做的一个笔记,应该可以看的懂吧,还有个例子,我有很详细的注释,不明白可以继续问
rand, srand原型:void srand(unsigned seed);用法: srand和rand()配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。 srand(unsignedseed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列#include<iostream>
#include<iomanip>
#include<ctime> //time(NULL)的头文件
#include<cstdlib> //产生伪随机数函数头文件
usingnamespace std;
constint TestNum = 6000;
inline int RandI (int N) //函数rand()可产生0到RAND_MAX的整数(RAND_MAX=0xfffu(32767)
{
return rand()%N+1; //获取0-N-1之间的随机整数可采用rand()%N,
} //此处N=6,因为骰子数值是0~6,
//inline double Rand(){returndouble (rand())/RAND_MAX;}产生0~1之间
voidTestDice() // 的随机浮点数
{
int Freq={0}, Face, i;
//seed伪随机数种子,由于time(NULL)是unsigned int 类型,所以要用
srand(int(time(NULL))); //int(time(NULL))强行转换为int类型,time(0)程序启动的时候读
oggplay 发表于 2014-4-23 20:51 static/image/common/back.gif
不能百度看随机手册吧
RAND(3) FreeBSD Library Functions Manual ...
层主是来考我的英语功底么:cry 优点是。。还算随机的。。
确定是。。可预测。。 这个啊 可以预测下一个数字是什么
页:
[1]