srand,rand函式的使用注意事項

2021-06-03 08:30:02 字數 464 閱讀 6381

在實際應用中,我們經常需要產生隨機數,這些隨機數的應用範圍也是十分廣泛的。但計算機只能依據一定演算法產生偽隨機數序列。c語言中最常用的產生偽隨機數序列的函式是srand和rand

srand,rand函式在實現上利用tlsgetvalue等一系列函式進行資料的訪問,也就意味著srand,rand訪問的資料是和執行緒相關的。

根據我使用經驗,總結出以下幾點注意事項:

1、rand函式初次使用之前必須呼叫srand函式初始化,才能保證產生不同的隨機數序列。

2、在多執行緒程式中,如果每個執行緒都需要呼叫rand,那麼必須在每個執行緒裡單獨進行初始化。

3、單程序的srand初始化,可以簡單的採用time(0)即可,但是多執行緒中,如果每個執行緒的開始時間近乎相同,那麼就不可採用time(0)進行初始化,因為time(0)實際精度只有s級,會導致每個執行緒產生相同的隨機數序列,因此需要用每個執行緒各不相同的乙個數去初始化srand,例如threadid等等

TransparentBlt函式的使用注意事項

今天客戶需要在軟體上需要新增乙個自己公司的logo,要求使用鏤空透明的形式展現,本來以為很簡單的工作沒想到在mfc下這麼複雜。logo為bmp格式,白色背景。以為和在按鈕上顯示控制項差不多,先導入bitmap資源,比如叫idb bitmap1,按鈕名比如叫idc button1,按鈕上貼圖的 cbi...

WindowsFormsHost的使用注意

一使用1引用 2xmlns wfi clr namespace system.windows.forms.integration assembly windowsformsintegration xmlns wf clr namespace system.windows.forms assembly...

Hystrix dashboard的使用注意事項

hystrix 服務監控面板如何與被監控服務對接起來 他其實是個三合一註解,包含了如下三個註解 放到啟動類中即可,注意 hystrix.stream 乙個字都不能錯 for dashboard bean public servletregistrationbean hystrixmetricsstr...