真正实时随机数的实现C++ _timeb _ftime(转)
生活随笔
收集整理的這篇文章主要介紹了
真正实时随机数的实现C++ _timeb _ftime(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通常大家使用隨機函數的時候都是使用
srand((unsigned?short?int)time(NULL));???rand();
?? 在大部分的應用中都能很好用。但是當遇到時間性很強的時候。比如操作速度很快的游戲。這個隨機方法就不好用了。
? 因為它有時間間隔。如果時間在1秒或更短的時間調用這個,它返回的隨機數是一樣的。
?? 給大家一個實時性很強的隨機方法
struct?_timeb?{?
????time_t?time;?
????unsigned?short?millitm;?
????short?timezone,?dstflag;?
};
time是從UTC時間1970年1月1日午夜(00:00:00)起累計的秒數;
millitm是一秒內的毫秒數
dstflag不為0,說明這是夏令時時間
timezone是UTC時間和本地時間的相差分鐘數
利用其中的毫秒。基本上不會有重復的數字出現。
example:
struct?_timeb?timebuffer;//定義一個結構_ftime(&timebuffer);//初始化timebuffer
srand(timebuffer.millitm);//timebuffer.millitm獲得毫秒
int?a=rand();
記得包含頭文件
#include?<sys/timeb.h>??//_ftime?無返回值,但獲得本地的時間數據并且填充進傳遞進來指向時間結構的變量中#include?<time.h>?
?
轉載于:https://www.cnblogs.com/wanghao111/archive/2009/05/25/1489018.html
總結
以上是生活随笔為你收集整理的真正实时随机数的实现C++ _timeb _ftime(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js中的Map对象
- 下一篇: 学习C++和编程的50个观点