【问题标题】:Simulation of a simple process code runif - R programming模拟一个简单的流程代码runif——R编程
【发布时间】:2019-11-03 11:54:22
【问题描述】:

约翰要么拜访住在市中心的女朋友,要么拜访住在住宅区的母亲,但不能两者兼而有之。他每天晚上随机去公共汽车站,乘坐住宅区或市中心的公共汽车(从同一个公共汽车站出发),以先到者为准。两种公交车每 30 分钟到达公交车站,有固定的发车时间:市区公交车的到站时间为每小时 a 或 (30 + a) 分钟,上城公交车的到站时间为 b 或 (30 + b) 每小时过去的分钟,其中 1 ≤ a

我证明了他应该每月拜访一次他的母亲(基本概率)。

我想写一个函数f(a,b) 可以模拟一次这种体验。然后我想多次重复这个体验,看看他去见他母亲的实际次数是否接近我们重复体验时的 b-a。

为此,我将 John 的到达时间定义为:

mom <- function(a,b) {
  JAT <- runif(n=360, min=0, max=59)
  y = 0 # y would be the number of time he went to see his mother
  if(JAT > b) {
    y <- y
  } else {
    y <- y + 1
  }
  return(y)
}

我真的不知道如何使它成为一个正确的函数f(a,b),而且我的代码甚至没有在 R 上运行(错误消息)。任何人都可以帮助我如何模拟约翰每天晚上进行的实验吗?提前非常感谢!

【问题讨论】:

    标签: r simulation probability


    【解决方案1】:

    有一个 30 分钟的循环重复,并且在该循环中出现了一次 ab

    鉴于a &lt; b,如果t是到达时间,那么乘坐哪辆巴士的决定可以概括为:

    • t &lt;= a: 市区巴士
    • a &lt; t &lt;= b: 上城巴士
    • t &gt; b: 市区巴士

    因此,计算其中一条总线占用次数的函数是:

    bus <- function(a,b) {
      arrivals <- runif(n=360, min=0, max=30)
      downtown <- sum( arrivals<=a | arrivals>b )
      uptown   <- sum( arrivals>a & arrivals<=b )
      return(downtown) # or uptown
    }
    

    【讨论】:

      猜你喜欢
      • 2013-12-16
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多