※ 引述《Warlock (覡)》之銘言:
: ※ 引述《bxxl (bxxl)》之銘言:
: : 假設共要取 N 個亂數, x(1) ~ x(N)
: : Step 1: 取 N-1 個 -1~1 之間的 uniform 亂數
: : Step 2: 第 N 個值 x[N] = 1 - sum(x(1:N-1))
: : Step 3: 如果 x[N] 不在 -1~1 之間, 就回到 Step 1.
: 可以看做是一個複雜一點的無規行走問題
: Step2 的 sum 的絕對值 的成長速度 大約是 sqrt(N)
: 所以 N大時 Step 3 失敗的可能性會非常高
: 所以這不是一個好的演算法。
的確是, 上面的方法大概算暴力法吧....
用goole找了一陣,
有一個power point file 提到跟上面滿像的例子,
(http://faculty.cs.wwu.edu/johnson/research/random.number.generation.ppt)
是用 Gibbs sampler 來做.
我以前沒看過這東西, 不敢多言, 只是他在第53頁舉的例子真的很像 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.66.171.13