r - 如何使用样本的输出在另一个样本中使用?
问题描述
例如,在我的问题中,当用户翻转硬币时,根据翻转,他们可以掷出 d4 骰子或 d6。(可以这么说,正面可以等于 d6,反面可以等于 d4)。从那里我需要使用蒙特卡罗模拟来找到预期的滚动(答案是 3,但我们需要为它编写代码)。
roll <- function(){
d4 <- sample(1:4,1)
d6 <- sample(1:6,1)
dice <- sample(c(d4, d6),1)
coin <- sample(c("H","T"),1)
sum(which(coin == "H") & which(dice == d4))
}
mean(replicate(10000, roll()))
我可以用一点点来推动正确的方向
解决方案
我想你想要一些类似的东西
coin <- sample(c("H","T"),1)
if (coin=="H") {
return(sample(1:4,1))
} else {
return(sample(1:6,1))
}
您实际上并不需要else
明确说明该子句(因为代码只会通过if
if 语句coin != "H"
)。
这可以更紧凑地完成,但以易读为代价(您不需要coin
临时存储结果,尤其是因为您只使用该信息一次)。或者它可以通过存储d4
和d6
然后if (coin=="H") { return(d4) } else { return(d6) }
.
开始打代码是很有诱惑力的(例如sample(sample(c(4,6),1),1)
)……或r <- sample(0:1,1); r*sample(4,1) + (1-r)*sample(6,1)
或……
推荐阅读
- firebase - Problem to retrieve data from firestore inside Listener
- laravel - How to hide Laravel crsf token from appearing in URL?
- python - Flask routes not updating
- google-chrome - Microsoft Modern Authentication using Chrome with MSAL
- javascript - Prevent Matched data from being published using If statement in $each function
- php - Laravel - 无法将文件从磁盘保存到数据库记录
- firebase - 在客户端与文档读/写的一对一关系中保护文档的读/写
- google-apps-script - 使用 Google Apps 脚本上传照片
- python - matplotlib 和 tkinter,帮助删除旧图
- bash - 我应该使用引号在 bash 中回显多个单词吗?