• 如何生成随机数


    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.总结

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

  • 相关阅读:
    java设计模式之建造者模式
    java设计模式之工厂模式
    Java并发—简介与线程创建
    Java基础—反射(转载)
    Eclipse中svn操作
    js常用方法总结
    Oracle学习笔记—常用函数
    Oracle学习笔记—connect、resource和dba三种权限(转载)
    JavaWeb—拦截器Interceptor
    JavaWeb—监听器Listener
  • 原文地址:https://www.cnblogs.com/wufengv5/p/3088705.html
Copyright © 2020-2023  润新知