作者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
→ jlovet:我對那個浮點數相除感覺很可疑... 05/16 03:05
→ softwind:(1. "+" rand() )/(RAND_MAX + 1.) 是這個意思嗎? 05/16 06:53
推 VictorTom:懷疑它只是要轉型 * 1.0 就好卻寫成 + 1.0 了....@_@" 05/16 12:11
→ VictorTom:我錯了, 11~20的話, 的確是要 + 1.0....Orz 05/16 12:19