随机数的产生
来源:互联网 发布:淘宝怎么修改主题颜色 编辑:程序博客网 时间:2024/04/18 11:25
static const int Size = 101;
static int first_time = 1;
static double rand_table[Size];
static double last_rand;
void OrignRandom()
{
srand((int) time(0));
for(int i = 0; i < Size; i++)
{
rand_table[i] = rand()/(RAND_MAX + 1.0);
}
last_rand = rand()/(RAND_MAX + 1.0);
first_time = 0;
}
double Random()
{
int index;
if(first_time) OrignRandom();
index = int(Size * last_rand);
last_rand = rand_table[index];
rand_table[index] = rand()/(RAND_MAX + 1.0);
return last_rand;
}
int main(int argc, char* argv[])
{
double ran;
for(int i = 0; i < 10; i++)
{
ran = Random();
cout << ran << endl;
}
return 0;
}
对于time(0)的解析如下:
time(0)得到当前时间,(INT)之后被转换为一个整数。因此时间在不停地变化,这就保证了每次执行到这里时,这里会得到一个不同的数。
这个不同的整数是为了给伪随机数发生器一个“种子”,无所谓大小,只要不同就行。
为什么伪随机数发生器需要种子?
注意到这个“伪”字。因为计算机的逻辑计算都是确定的,实际上没有办法产生真正的随机数,因此,计算机里的随机数都是采用对某个“初始数”进行某种迭代运算而产生的,如每次取其三角函数结果的第N位等,用于得到模拟的随机序列,因此称为伪随机数。那个初始数,也就是“种子”。
- 关于随机数的产生
- 随机数的产生
- 随机数的产生
- 随机数的产生
- 随机数的产生
- dephi 随机数的产生
- 随机数产生的程序
- java随机数的产生
- 产生随机数的原理
- 随机数的产生
- 随机数的产生
- 随机数的产生
- 关于随机数的产生!!
- 随机数的产生
- 随机数的产生
- LINUX随机数的产生
- C++随机数的产生
- 随机数的产生
- struts2自定义验证消息位置
- vmap --- from security database tools watch
- 学习《Oracle 9i10g编程艺术》的笔记 (三)
- mantis不能发送邮件
- 杂感
- 随机数的产生
- WWW的核心——HTTP协议
- 增强记忆力
- 电脑140招实用技巧
- websecurity tools update
- java备份MySQL (windows linux)
- SOAP 1.1规范
- JAVA开发者最常去的20个英文网站
- RISK IT Framework and Practitioner Guide