zoukankan      html  css  js  c++  java
  • 如何生成随机数

    1.rand()每次的随机都一样,范围是0到RAND_MAX;RAND_MAX是宏定义,在stdlib.h中定义,大小是32767

    #include <stdio.h>
    #include <stdlib.h> //rand()的头文件,产生随机数的范围是  0到RAND_MAX 
    
    int main()
    {
        int i;
        for (i=0; i<10; i++)
        { 
            printf("%d ", rand());
        }
        printf("\nRAND_MAX = %d",RAND_MAX);//RAND_MAX在头文件stdlib.h里定义的
        return 0;
    }

     输出的结果(即产生的随机数)每次都一样:

    2.rand()和srand()配合使用,每次产生的随机数不一样,范围仍是0到RAND_MAX

     stdlib.h头文件中有宏#define RAND_MAX 0x7fff=32768, rand()产生的最大数是32767最小是0

    #include <stdio.h>
    #include <stdlib.h> 
    #include <time.h>  //time()的头文件
    
    int main()
    {
        int i;
        srand((int)time(0));//避免每次都产生一样的随机数
        for (i=0; i<10; i++)
        { 
            printf("%d ", rand());
        }
        return 0;
    }

    #include <stdio.h>
    #include <stdlib.h> 
    #include <time.h>  //time()的头文件
    
    int main()
    {
        int i;
    
        time_t t;
        time(&t);
        srand((unsigned)time(&t));//用时间作为种子,避免每次产生的都是一样的随机数
    
        for (i=0; i<10; i++)
        { 
            printf("%d ", rand());
        }
        return 0;
    }

    3.总结

    其实根本没有真正的随机数。因为通过实验发现,产生的第一个随机数总在一个小范围内波动。

  • 相关阅读:
    Linux 之 文件压缩解压
    Linux 之 文件搜索命令
    Linux 之 文件内容查看
    Linux 之 Vim常用命令
    Linux 之 CentOS练习
    CentOS找不到想要的镜像版本?
    Swoole 简单学习(2)
    Swoole 简单学习
    svn的简单知识
    8、16、32-BIT系列单片机区别与特点
  • 原文地址:https://www.cnblogs.com/wufengv5/p/3088705.html
Copyright © 2011-2022 走看看