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