[爆卦]srand是什麼?優點缺點精華區懶人包

為什麼這篇srand鄉民發文收入到精華區:因為在srand這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者sjgau (sjgau)看板C_and_CPP標題Re: [問題] 關於srand()的運作機...

srand 在 Ariel Baby Instagram 的最佳解答

2020-05-03 21:00:37

🔗 https://goo.gl/cn4DW7 沒錯!這是台北知名「烘爐地」限量發行的開運美食😍😍😍 我ㄧ收到的心情是⋯⋯「我要發財了」哈哈,真的是太驚喜!第一組超療癒土地公公包+元寶包,第二組狗年旺旺財犬包+元寶包。 收到的心情真的莫名感到興奮,覺得走運的開始,整個心情磁場都往上爬🌈🌈 先來分享...


亂數的 基本精神:

R(n)= (R(n-1)*a + b) mod c

第 n 個亂數,等於 前一個亂數, 乘上 常數 a,

加上 常數 b 以後的結果, 對 常數 c 取餘數。

所以, srand() 的目的,是設定 種子數。
利用 時間函數 time(NULL) 得到的數字是 目前的秒數,
1970/01/01 的 00:00:00 到現在的秒數,
所以,如果你在 一秒鐘的間隔之內,呼叫 srand(),
回得到相同的 秒數,所以 會設定使用 相同的 種子數,
所以會得到相同的 亂數數列。




※ 引述《kkroy (大豬小豬肉一斤)》之銘言:
: 大家好,
: 我想請問一下,當我取亂數時,以srand((unsigned)time(NULL))作為種子,
: 為什麼只要在main()裡執行一次就可以了,之後需要用到亂數時直接呼叫rand()函數,
: 而不是每次呼叫一次亂數函數就設定一次種子srand(.)?
: 又如果我用迴圈跑50個rand()亂數,但是每跑一次迴圈就設定一次srand(.)種子,
: 這樣產生的亂數跟 我只在main()裡面、跑迴圈前設一次srand(.)種子,
: 再用迴圈執行50次rand()得到的50個隨機亂數,
: 是不是應該都是 0~RAND_MAX 的 Umiform distribution 沒有差別?
: 謝謝大家!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.231.53.61
kkroy:我了解了!十分謝謝你!還專程寄站信箱耶,可惜我不會用bbs... 06/20 17:17

你可能也想看看

搜尋相關網站