看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 為避免以後我還會遇到類似的問題, 我把相關的問題都一起先問了.. C 語言裡有定義一個 RAND_MAX, 32767 (int 型態) (1) 若我今天要產生 0~9999999 整數亂數, 該怎麼辦? (2) 若我今天要產生 -9999999.999 ~ 9999999.999 我的想法 (for (1)): a. 將 0-9999999 切成 10000 等份, 0-999, 1000-1999, ....., etc. b. 先取 0-9999亂數一次, 可以得到是在第幾個等份 c. 再取一次 0-999亂數, 可得該等份第幾個元素 請問上述這種方式是否嚴謹? 不知是否有人有其它相關經驗可以參考或分享?? 非常感激各位先進指教 -- 我期待 我等待 肩狹骨上的翅膀早些長出來 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.209
visor:(1) 10000 * (rand() % 1000) + rand() % 10000 ?? 05/24 10:18
tinlans:現在的 RAND_MAX 沒這麼小,大都是 0x7fffffff。 05/24 11:29
tinlans:真的要大於這數字的,找加密函式庫提供的大數亂數吧。 05/24 11:29
tropical72:reply tinlans:my complier(VC6.0) RAND_MAX = 36767. 05/24 20:43
tropical72:thx to visor ^^ 05/24 20:43