c语言生成随机数一般用法
#include <stdio.h>
#include <time.h>
void main()
{
srand((unsigned)time(NULL));//设置当前时间为种子
printf("%d",rand()%10);//生成0-9的随机数
}
测试仅使用rand()函数,不使用srand()函数的随机性
测试不适用srand()设置种子的结果是否具有随机性,测试代码如下:
#include <stdio.h>
#include <time.h>
void main()
{
//srand((unsigned)time(NULL));//设置不可预测的种子
int num[10];//num数组对随机数结果计数
for(int k=0;k<10;k++){
memset(num,0,10*sizeof(int));
printf("第%d次结果\n",k);
for(int i=0;i<10000;i++){
int myNum=rand()%10; //生成0-9的随机数
num[myNum]++;//累计结果
}
for(int i=0;i<10;i++){
printf("%d\n",num[i]);//输出结果
}
}
}
测试结果如下:
测试结论:
未发现明显证据证明rand()函数不具有随机性。
虽然结果显示rand()函数具有随机性,但是使用的时候还是加上srand()吧,毕竟心里感觉稍微安全点。所以我做实验的目的是什么????