亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在cocos2d-x中實現真隨機數

發布時間:2020-05-27 12:28:20 來源:網絡 閱讀:1914 作者:嗚拉呆 欄目:游戲開發

今天在項目中用到了隨機數,但發現cocos2d-x中宏CCRANDOM_0_1提供的都是非常有規律的隨機數,后來上網查資料的值,產生隨機數的函數rand需要一個“種子”,默認情況下,該種子的值是不變的,因此每次程序運行,我們都會看到,它所產生的一組隨機數都是和上次的一樣的,那么為了能夠產生真隨機數,我們就必須來動態的修改該種子的值,該過程可通過srand(unsigned int speed)函數實現,具體實現過程如下:

這里直接把它寫成一個函數方便調用

static float myRand_0_1()

{

   cc_timeval psv;  

   CCTime::gettimeofdayCocos2d( &psv, NULL );    // 獲取本地時間

   //根據時間產生隨機種子

   //(這里加上一個rand函數,可解決在循環內(時間間隔極短)取隨機數時,

   //連續取得的幾個值相同的問題)

   unsigned int tsrans = psv.tv_sec * 1000 + psv.tv_usec / 1000 + rand();

   srand(tsrans);    //設定隨機數種子

   return CCRANDOM_0_1();

}


這里補充一點:

c語言里函數rand()和srand()的用法:

rand(void)用于產生一個偽隨機unsigned int 整數。
srand(seed)用于給rand()函數設定種子。


srand 和 rand 應該組和使用。一般來說,srand 是對 rand 進行設置。比如:
srand((UINT)GetCurrentTime());
int x = rand() % 100;
是生成 0 到 100 之間的隨機數。


srand()是用來初始化隨機種子數的,因為rand的內部實現是用線性同余法做的,他不是真

的隨機數,只不過是因為其周期特別長,所以有一定的范圍里可看成是隨機的,式子如下:
rand = rand*const_1 + c_var;



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安陆市| 苏尼特右旗| 临西县| 东乡族自治县| 阳春市| 兖州市| 黔东| 新昌县| 昌宁县| 宁都县| 渭源县| 上杭县| 郑州市| 略阳县| 枣强县| 阳信县| 崇州市| 六枝特区| 通辽市| 黄浦区| 封丘县| 兴化市| 旌德县| 财经| 麦盖提县| 邢台市| 富源县| 峨眉山市| 南漳县| 宝山区| 古交市| 墨竹工卡县| 奎屯市| 夏津县| 泉州市| 金昌市| 德清县| 商水县| 历史| 正镶白旗| 罗甸县|