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

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

  • 相关阅读:
    『软件介绍』SQLServer2008 基本操作
    PCA的数学原理
    PCA的数学原理
    Oracle数据处理
    UVa 11995
    Unreal Engine 4 C++ 为编辑器中Actor创建自己定义图标
    codecombat之边远地区的森林1-11关及地牢38关代码分享
    初识ecside
    how tomcat works读书笔记 七 日志记录器
    HDU 1754(线段树区间最值)
  • 原文地址:https://www.cnblogs.com/wufengv5/p/3088705.html
Copyright © 2011-2022 走看看