[程式] R repeat
我想用 簡單的 accept/reject algorithm 生樣本
作法 Step 1 : generate x ~ uniform (0,1) ; y ~ uniform(-1,1)
Step 2 : IF x < 0.5*(1+sin(2*pi*y) , let z = y ;
otherwise, return to Step 1
以下是我自己寫的程式
z <- repeat
{
x <- runif(1,0,1)
y <- runif(1,-1,1)
if (x < 0.5*(1+sin(2*pi*y))) {break}
{z <- y}
}
我的問題在於有時候 z 會跑出 NULL
我知道寫錯了 但不知道錯在哪 =.=|||
能否煩請知情的版友告訴我該怎麼改
程式才會每次都跑出數據呢? 謝謝
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.18.10
※ 編輯: laba1014 來自: 61.230.18.10 (05/10 06:14)
※ 編輯: laba1014 來自: 61.230.18.10 (05/10 06:23)
→
05/10 07:23, , 1F
05/10 07:23, 1F
→
05/10 07:32, , 2F
05/10 07:32, 2F
※ 編輯: laba1014 來自: 61.230.18.10 (05/10 07:33)
→
05/10 09:39, , 3F
05/10 09:39, 3F
→
05/10 09:40, , 4F
05/10 09:40, 4F
→
05/10 10:18, , 5F
05/10 10:18, 5F
→
05/10 14:25, , 6F
05/10 14:25, 6F
→
05/10 14:25, , 7F
05/10 14:25, 7F