短时间内快速获取随机数的方法

Posted on 2012-03-15 12:35  无忧consume  阅读(247)  评论(0编辑  收藏  举报

 http://www.cnblogs.com/cxun/archive/2010/03/07/1680427.html

如果在很短的时间内连接获取随机数,会发现获取的随机数是同一个,下面例子可以实现短时间内快速获取不一样的随机数:

#include <windows.h> 
#include <iostream> 
using namespace std;

//#define USE_QUICK_RAND

DWORD WINAPI thread(PVOID pBuf) 
{

    LARGE_INTEGER li; 
    QueryPerformanceCounter(&li); 
    srand(li.QuadPart); 
    cout<<"random number: "<<rand();

    return 0; 
}

void main() 

    for (int i = 0; i < 10; i++) 
    { 
#ifdef USE_QUICK_RAND 
        LARGE_INTEGER li; 
        QueryPerformanceCounter(&li); 
        srand(li.QuadPart); 
#else 
        srand(GetTickCount()); 
#endif 
        cout<<"random number: "<<rand()<<endl; 
    } 
}

Copyright © 2024 无忧consume
Powered by .NET 9.0 on Kubernetes