[問題] 亂數的產生

看板C_and_CPP (C/C++)作者 (累人啊....)時間16年前 (2009/10/14 15:40), 編輯推噓3(307)
留言10則, 5人參與, 最新討論串1/1
請問像這樣的程式碼 int random(int count){ return static_cast<int>((count*static_cast<long>(rand()))/(RAND_MAX+1)); } srand(static_cast<unsigned>(time(0))); int count=10; int randnum=random(count); MessageBox::Show(randnum.ToString()); 我發現可產生亂數,但是亂數的"第一次產生"都會是同樣的數字 請問是為什麼?然後又要怎麼改呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.48.28

10/14 15:58, , 1F
seed
10/14 15:58, 1F

10/14 16:05, , 2F
阿你沒有呼叫srand吧?
10/14 16:05, 2F

10/14 16:10, , 3F
在windows form下面,srand我放在Form_Load,會呼叫到吧
10/14 16:10, 3F

10/14 16:11, , 4F
沒呼叫的話,是往後幾次都會是固定,有呼叫就一次固定而已@@
10/14 16:11, 4F

10/14 16:22, , 5F
你的 srand 是怎麼呼叫的呢?
10/14 16:22, 5F

10/14 16:23, , 6F
使用 Winform 的話 其實也有個 Random 類別可以用
10/14 16:23, 6F

10/14 16:58, , 7F
srand就放在Form1_Load事件啊,然後開一個button來產生亂數
10/14 16:58, 7F

10/14 17:23, , 8F
不會windows form不過srand的seed你要每次都取不同張亂數表吧
10/14 17:23, 8F

10/14 17:28, , 9F
通常srand傳seed只在AP剛起來的時候做不是嗎??
10/14 17:28, 9F

10/14 19:05, , 10F
如果像AP大所說,那我該??
10/14 19:05, 10F
文章代碼(AID): #1ArO1X-p (C_and_CPP)
文章代碼(AID): #1ArO1X-p (C_and_CPP)