zoukankan      html  css  js  c++  java
  • 快速生成随机数据

      在对拍或出题时生成随机数据的种子若为time(0)(需要ctime或time.h头文件),发现1s内生成的数据都是一样的。这是因为time(0)是以1s为单位。为了使1s内生成的数据能有不同,可以适用单位精确到毫秒的有关时间的操作。

      注:以下操作的前提是windows环境,需要头文件windows.h。

    1、SYSTEMTIME

      SYSTEMTIME是一个定义的结构体类型,具体定义代码:

     1   typedef struct _SYSTEMTIME {
     2     WORD wYear;
     3     WORD wMonth;
     4     WORD wDayOfWeek;
     5     WORD wDay;
     6     WORD wHour;
     7     WORD wMinute;
     8     WORD wSecond;
     9     WORD wMilliseconds;
    10   } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;

      WORD是一个2字节的无符号整数。更多可看:https://blog.csdn.net/w2453476933/article/details/74090305 c++ 标准数据类型

      SYSTEMTIME类型的成员分别意义分别是年、月、周几、天、小时、分钟、秒、毫秒

      配合函数:GetSystemTime(&a) (为SYSTEMTIME类型的a赋值世界协调时)或GetLocalTime(&a) (为SYSTEMTIME类型的a赋值本地时间),a.wMilliseconds即可作为随机种子。

    2、GetTickCount()

      GetTickCount()返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值类型是DWORD(一个占4字节的无符号整数)。可直接作为随机种子(虽然srand()参数类型是unsigned int短了点,但问题不大)。

      更详细可见:https://blog.csdn.net/mjshldcsd/article/details/7180962 C++ GetTickCount()和Sleep()

  • 相关阅读:
    C++ Primer 读书笔记 第六章
    C++ Primer 读书笔记 第十章
    面试题笔记
    C++ Primer 读书笔记 第八章
    ZedGraph源码学习(三)
    一个简单的代码生成器XML与XLST的应用测试。
    信息导到Execl上.
    SQL相关功能实现.
    ZedGraph源码学习(二)
    EXECL导入(检查服务器版本.包括NPOI方式导入.可以通过配置文件信息导入EXECL)代码记录下.
  • 原文地址:https://www.cnblogs.com/InductiveSorting-QYF/p/15371933.html
Copyright © 2011-2022 走看看