r - R: rgeom(n,p) 当 n 和 p 不固定时
问题描述
情况:假设一个袋子里有 1 个蓝球和 1 个红球。在每一轮,随机选择一个球,然后与另一个(新)相同颜色的球一起返回(所以在 n 轮之后,袋子里总会有 n+2 个球)。
我想编写一个循环来模拟使用 rgeom(n,p) 代码从袋子中取出第一个红球之前所经过的圈数。但是由于 n 是未知的并且 p 每回合都在变化,我很困惑如何修改它。我尝试了以下代码,但它不会打印任何内容:
k=0
success = 0
while(success <= 1){
k = k + 1
if (rgeom(n, 1/(n+1) == 1)
success = success + 1
}
k
我该如何编写循环?
解决方案
如果我进行一些小的更改,我会为 k 获得一些价值:
set.seed(123)
k=0
success = 0
while(success < 1){ # rather than <=1, which includes 0
k = k + 1
if (rgeom(n, 1/(n+1)) == 1) # missed closing parenthesis
success = success + 1
}
k
我有k=8
但是有很多警告!
推荐阅读
- python - 如何在 excel 文档中搜索特定单词,并使用搜索结果构建新列
- python - 无法使用`loc`向`pandas.DataFrame`子类添加行
- .net - 访问 IQueryable 时如何防止实体框架请求两次
- php - Laravel 5.8 - 尝试通过从数据库中提取信息来构建模型
- javascript - 我创建了我的自定义每个函数(数组函数),但这没有按预期工作,
- python-3.x - RuntimeError:matplotlib 不支持生成器作为输入
- python - 如何在 excepts 子句中使用包中的自定义异常?
- php - 如何在 Laravel 上的 app/Mail VeryfyMail.php 上生成随机令牌?
- python - boto3 客户端方法使用变量作为方法名
- laravel-5 - Laravel如何禁用/删除路由缓存