主题:求助MFC中调用随机函数问题
tjlove22
[专家分:0] 发布于 2011-09-19 20:12:00
我在MFC中想调用随机函数rand()
在头文件中包含了 stdlib.h stdio.h time.h
但是在调用srand 时出现了如图的错误
请教怎么解决
还有 srand(time(0));实现的随机数貌似也像伪随机数 因为按得速度快得话随机数的变化几乎很小
甚至就没有变化 请教怎么解决这个问题?
回复列表 (共2个回复)
沙发
winmain2008 [专家分:280] 发布于 2011-10-10 19:34:00
恩,这是个问题,因为C++里面的时间函数都是返回以秒为单位的,如果你在一秒内中调用几次srand(time(NULL)),初始化的种子是一样的,依次调用随机函数返回的值序列也就一样。解决方案是使用更精确的计时函数当种子,比如C++里面的_rdtsc()、windows api里面的GetTickCount等
板凳
hantayi [专家分:0] 发布于 2011-10-23 14:23:00
srand((unsigned)time(0));
CString str1,str2;
int ran_num;
for(int i=0;i<10;i++)
{
ran_num=rand() % 6;
str1.Format("%d",ran_num);
str2 +=" ";
str2 +=str1;
}
MessageBox(str2);
我来回复