作者tyc5116 (累人啊....)
看板C_and_CPP
标题[问题] 乱数的产生
时间Wed Oct 14 15:40:15 2009
请问像这样的程式码
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
1F:→ adrianshum:seed 10/14 15:58
2F:推 QQ29:阿你没有呼叫srand吧? 10/14 16:05
3F:→ tyc5116:在windows form下面,srand我放在Form_Load,会呼叫到吧 10/14 16:10
4F:→ tyc5116:没呼叫的话,是往後几次都会是固定,有呼叫就一次固定而已@@ 10/14 16:11
5F:→ james732:你的 srand 是怎麽呼叫的呢? 10/14 16:22
6F:→ james732:使用 Winform 的话 其实也有个 Random 类别可以用 10/14 16:23
7F:→ tyc5116:srand就放在Form1_Load事件啊,然後开一个button来产生乱数 10/14 16:58
8F:推 QQ29:不会windows form不过srand的seed你要每次都取不同张乱数表吧 10/14 17:23
9F:推 VictorTom:通常srand传seed只在AP刚起来的时候做不是吗?? 10/14 17:28
10F:→ tyc5116:如果像AP大所说,那我该?? 10/14 19:05