Fra*_*fka 4 simulation r probability coin-flipping
这不是功课.我有兴趣在R中设置一个投掷硬币的模拟.我想将模拟运行一周.R中是否有一个函数可以让我在一周的时间内启动和停止模拟?如果一切顺利,我可能想要增加模拟周期的长度.
例如:
x <- rbinom(10, 1, 1/2)
Run Code Online (Sandbox Code Playgroud)
因此,为了澄清,而不是上面的代码中的10,我如何保持模拟一周(一周的试验次数与试验的设定次数)?谢谢.
And*_*rie 11
以下代码将继续运行三秒钟,然后停止并打印总计.
x <- Sys.time()
duration <- 3 # number of seconds
heads <- 0
tails <- 0
while(Sys.time() <= x + duration){
s <- sample(0:1, 1)
if(s == 1) heads <- heads+1 else tails <- tails+1
cat(sample(0:1, 1))
}
cat("heads: ", heads)
cat("tails: ", tails)
Run Code Online (Sandbox Code Playgroud)
结果:
001100111000011010000010110111111001011110100110001101101010 ...
heads: 12713
tails: 12836
Run Code Online (Sandbox Code Playgroud)
警告提示:
以我的机器速度,我打赌你在本周结束前很久就会出现浮点错误.换句话说,您可以获得机器允许您存储为整数,双精度,浮点数或任何正在使用的值的最大值,然后您的代码将崩溃.
因此,您可能需要构建一些错误检查或翻转机制来保护您免受此攻击.
有关将要发生的事情的加速说明,请尝试以下操作:
x <- 1e300
while(is.finite(x)){
x <- x+x
cat(x, "\n")
}
Run Code Online (Sandbox Code Playgroud)
R优雅地处理浮点重载,并返回Inf.
因此,无论您在模拟中获得的数据现在都丢失了.无法将无穷大分析到任何合理的程度.
在设计模拟时请记住这一点.
| 归档时间: |
|
| 查看次数: |
1909 次 |
| 最近记录: |