随意漫步在R

时间:2016-10-24 03:50:18

标签: r

根据请求,伪代码(我不是编码器,所以这里不是很好的伪代码),但是,

  1. 选择1x1平方的随机坐标。
  2. for(i in 1:iterations)
  3. 检查1x1平方内是否有坐标。
  4. 如果它在方形之外,则重复以前的坐标值。
  5. 检查坐标是否落在1x1方格内的圆圈中。
  6. 如果是,则向柜台内+1。
  7. 如果不是,则向外部柜台+1。
  8. 在任何方向添加epsilon的值,然后重复。
  9. 最后,pi_est <- (inside/(inside + outside))*4

1 个答案:

答案 0 :(得分:2)

正如我所建议的可能是评论中的问题 - 使用随机游走方案,我相信你不会经常访问每个方格......并且 是会使你的估计不准确(有偏见)。

我建议你设置一个小网格(比如5x5)并运行很长时间,然后我建议累积六种不同细胞类型的结果:

C E M E C   (Corner,   Edge,     Midedge, 
E D O D E            Diagonal,  Orthogonal, 
M O X O M                        Xenter)
E D O D E
C E M E C

(因为 - 通过对称 - 这些类型中的任何差异都应该是仅噪声的。)

然后(根据每种类型的细胞的相应计数为4,8,4,4,4,1的事实进行扩展)你应该能够看到它们是否以正确的比例被访问(16%,分别为4-,8-或1-计数的32%和4%)。我相信你会发现边界细胞的访问频率(相对于它们的公平比例)比中间更多。

一个建议是将边缘“包裹”到顶部和底部边缘以及左右边缘进行通信。这避免了边缘处的“反弹”,而是使每个细胞像其他细胞一样;通过对称,你应该得到每个细胞的相同概率。