c语言生成随机数函数rand()

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()吧,毕竟心里感觉稍微安全点。所以我做实验的目的是什么????

发布了3 篇原创文章 · 获赞 6 · 访问量 126

猜你喜欢

转载自blog.csdn.net/werdery/article/details/104193815