→ lty721231:謝囉 我試試看140.116.215.227 02/27 12:37
※ 引述《lty721231 (TY)》之銘言:
: 我需要別人寫好的uniform分佈的函式
: 我之前有用過lcgrand.h 和 lcgrand.c
: 但是我後來做數值統計發現並沒有符合uniform的分佈
: 我也不想用srand time null
: 所以我想請問大家是否有使用過某些好用的函式庫
: 並請問要到哪裡下載呢?
: 謝謝!
: 我用的是 Visual C++ 2005
可以用 C++ TR1 或 Boost 提供的 random lib,
你想要 uniform 還是 normal distribution 的亂數都有辦法生出來,
但是 call srand 設定一個 seed 還是必要的。
C++ TR1 文件:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf
Boost.random 文件:
http://www.boost.org/doc/libs/1_38_0/libs/random/index.html
我只知道最新的 VC++ 是有 TR1 函式庫的支援,
不知道 2005 的 service pack 有沒有,
沒有的話可以裝個 boost 來用。
其實 C 的 rand() 提供的就是 uniform dist. 亂數了,
但是你把它的結果做 % 運算可能破壞這個性質。
--
Ling-hua Tseng (uranus@tinlans.org)
Department of Computer Science, National Tsing-Hua University
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://www.tinlans.org
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.111.131