标注的1,2号的随机数,为什么1号的随机数比较集中,2号的srand出现数更随机?
1数据集中可能可以理解,但2就理解不了了
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("猜数字>;\n");
printf1.进入游戏 0.退出游戏\n");
}
void game()
{
int ret = 0;
//srand((unsigned int)time(NULL));//1.这里实现随机
ret = rand();
printf("%d\n", ret);
}
int main()
{
int input=0;
//srand((unsigned int)time(NULL));//2.这里实现随机
do
{
menu();
printf("请选择>:\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
} while (input);
return 0;
}
帮忙解释下rand和srand随机数生成原理
如果调用rand之前使用了srand设置种子(到目前为止的流逝时间),那么rand会根据srand(seed)一起来初始化它的起始值,产生伪随机。如果不设置时间种子,值初始化后就不会再发生改变