Re: [問題] 隨機亂數rand()的問題

看板C_and_CPP (C/C++)作者 (打不贏怪兵器不好)時間16年前 (2009/05/16 01:19), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串2/4 (看更多)
※ 引述《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

05/16 03:05, , 1F
我對那個浮點數相除感覺很可疑...
05/16 03:05, 1F

05/16 06:53, , 2F
(1. "+" rand() )/(RAND_MAX + 1.) 是這個意思嗎?
05/16 06:53, 2F

05/16 12:11, , 3F
懷疑它只是要轉型 * 1.0 就好卻寫成 + 1.0 了....@_@"
05/16 12:11, 3F

05/16 12:19, , 4F
我錯了, 11~20的話, 的確是要 + 1.0....Orz
05/16 12:19, 4F
文章代碼(AID): #1A3QGNLd (C_and_CPP)
文章代碼(AID): #1A3QGNLd (C_and_CPP)