作者jlovet (打不赢怪兵器不好)
看板C_and_CPP
标题Re: [问题] 随机乱数rand()的问题
时间Sat May 16 01:19:17 2009
※ 引述《chin2049 (香吉士)》之铭言:
: srand( static_cast<unsigned int>(time(NULL))); //随机函式
: int a = 11 + static_cast<int>( 1. * rand() * 10 / (RAND_MAX + 1.));
你可以印这几个值出来看看
cout<<(( 10 / (RAND_MAX + 1.)))<<endl;
cout<<rand()* 10 / (RAND_MAX + 1.)<<endl;
cout<<(RAND_MAX + 1.)<<endl;
为什麽要除以RAND_MAX+1
这真是一本有趣的好书....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.102.167
1F:→ jlovet:我对那个浮点数相除感觉很可疑... 05/16 03:05
2F:→ softwind:(1. "+" rand() )/(RAND_MAX + 1.) 是这个意思吗? 05/16 06:53
3F:推 VictorTom:怀疑它只是要转型 * 1.0 就好却写成 + 1.0 了....@_@" 05/16 12:11
4F:→ VictorTom:我错了, 11~20的话, 的确是要 + 1.0....Orz 05/16 12:19