这是我以前碰到过的一个问题,实质还是没有理解本质,看下面的程序
#include<iostream>
#include<time.h>
#include<cstdlib>
using namespace std;
int Random()//这个函数假设返回随机值
{
srand((unsigned)time(NULL));//这里time(NULL)函数返回的是从1900年1月1日的0点到现在为止经历了多少秒
return (rand()%10+1);//返回1到10的随机数
}
void main()
{
for(int i=0;i<100;i++)
{
cout<<Random()<<" ";
}
system("pause");
}
如果你运行了上述的程序后,你就会发现,产生的随机数一样。原因很简单,
对于每一个种子,我们返回的随机值其实已经是确定的了,你可以试一试把随机数种子设为一个固定
的数字,然后。
返回100个数,然后多实验几次,你会发现每一次的100个数都一样。
或者你可以尝试将上面我的程序中的100改成10000试试,你可以试试程序运行的效果。
简单来说,就是我们的随机数种子在一秒内不变,由于是调用函数,每次的随机数
就相当于你上面自己做的实验,返回的是随机数种子对应的随机数的第一个随机数。