工大后院

标题: C++问题 [打印本页]

作者: 凉风习习    时间: 2006-5-11 13:17
标题: C++问题
#include<iostream>
#include<ctime>
using namespace std;
int main()
{   int i;
      for( i=0;i<3;i++)
     {
     srand((unsigned)time(NULL));
     i=rand();
     cout<<"i is "<<i<<'\n';;
     }

  return 0;
}
这个程序用来产生三个随机数,但是我的总是只有一行输出呢?还有srand((unsigned)time(NULL))是什么意思呢?我发现加了这个语句之后,产生的随机数是越大越大的而不是真正随机的数,这又是什么原因呢?谢谢
作者: gyCai    时间: 2006-5-11 15:17
在TC编译器中,srand()函数是用来初始化种子的。而time()函数是用于获取日历时间的,楼主参数用NULL,那么获取的是当前日历时间,就是从1970年1月1日0时0分0秒到现在的秒数。因此,越往后这个种子就越大。另外,如果不初始化种子,那么经过32767还是32768(忘记了,不好意思)个数后会产生重复现象。至于你的随机数为什么会越来越大,看完上面描述您应该都明白了吧?
作者: 凉风习习    时间: 2006-5-11 23:23
明白  谢谢啊




欢迎光临 工大后院 (https://www.gdutbbs.com/) Powered by Discuz! X3.5