随机数产生问题,按说很简单,求认证
如下代码,产生随机数,此时随机数产生无问题,
int main(int argc, char* argv[])
{
randomize(); //获取随机数种子
for(int j=0;j<4;j++){
for(int i=0;i<10;i++)
printf("Random number in the 0-99 range: %d\n", random (10));
printf("\nj=%d=========\n",j) ;
}
getchar();
}
但是将randomize(); 放在 for(int j=0;j<4;j++)里面,随机数就具备规律性了,如下:
for(int j=0;j<4;j++){
randomize(); //获取随机数种子
for(int i=0;i<10;i++)
printf("Random number in the 0-99 range: %d\n", random (10));
printf("\nj=%d=========\n",j) ;
}
难道 randomize(); 获取的值是一样的???
[解决办法]
http://www.cplusplus.com/reference/random/
[解决办法]
四次循环,每次都种下相同的“种子”,长出来的数字就一样了。
[解决办法]
初始化的时候先srand((unsigned int)(time(NULL))这样设定随机数种子。