[問題] 消失的亂數

看板C_and_CPP (C/C++)作者 (如果大海能夠)時間16年前 (2009/09/24 14:13), 編輯推噓4(402)
留言6則, 5人參與, 最新討論串1/3 (看更多)
小弟最近在研究亂數 想取[0, 1]之間的任一浮點數亂數 (包括0與1) 所以寫出了 rand()/(float)RAND_MAX 這樣的語法 結果發現,因為分母是奇數(32767),所以絕對取不到0.5這個亂數 所以試著把分母變為偶數 rand()/(float)(RAND_MAX+1) 但發現這樣取不到1.0這個亂數 又如果改成 (rand()+1)/(float)(RAND_MAX+1) 那可以想像會取不到0.0這個亂數 如果我把分母乘兩倍(一個偶數) rand()/(float)RAND_MAX*2 最後只要我敢把偶數乘數也乘到rand()上 ,那我的亂數就會分佈不均的樣子 (rand()/(float)RAND_MAX*2)*2 不知道有沒有大大有什麼建議的 真的非常謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.22.18.83

09/24 14:25, , 1F
到小數點後第三位 rand()%1001/1000
09/24 14:25, 1F

09/24 14:42, , 2F
這告訴我們有理數是很鬆散的 (?) XD
09/24 14:42, 2F

09/24 15:16, , 3F
零到一之間的浮點數,少掉的可多著呢
09/24 15:16, 3F

09/24 18:28, , 4F
自己填double裡面的bit怎麼樣?
09/24 18:28, 4F

09/25 00:51, , 5F
要夠亂 抓sec丟進去一個SEED然後srand產生 rand產生的不夠亂
09/25 00:51, 5F

09/25 00:52, , 6F
RAND產生的亂數 頻率是一樣的
09/25 00:52, 6F
文章代碼(AID): #1AkmudEj (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):
文章代碼(AID): #1AkmudEj (C_and_CPP)