首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于R函数:当使用with循环进行X次尝试时,如何显示n面骰子在数字“n”中滚动的抛出次数列表?

对于R函数:当使用with循环进行X次尝试时,如何显示n面骰子在数字“n”中滚动的抛出次数列表?
EN

Stack Overflow用户
提问于 2020-05-01 21:49:33
回答 2查看 48关注 0票数 1

R函数的

即:重复掷六面骰子方案三次,第一次掷三次得到"6",第二次掷一次,第三次掷四次,所以返回三次、一次、四次。

代码语言:javascript
复制
roll <- function(n, X){
  a <- 0
  y <- sample(1:n, size=X, replace=TRUE)
  while (y!=n){
    a <- a+1
    return(a)
    }
} 

roll(6,5)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-01 22:11:39

正如@James Curran所回答的,最简单的方法是应用负二项分布。

如果您想定义自定义函数roll,可以尝试下面的代码

代码语言:javascript
复制
roll <- function(n, X){
  res <- rep(0,X)
  for (i in 1:X) {
    a <- 0
    repeat {
      if (sample(n,1)==n) break
      a <- a + 1
    }
    res[i] <- a + 1
  }
  res
} 

代码语言:javascript
复制
roll <- function(n, X){
  res <- rep(0,X)
  for (i in 1:X) {
    a <- 0
    while (sample(n,1)!=n) {
      a <- a + 1
    }
    res[i] <- a + 1
  }
  res
} 
票数 1
EN

Stack Overflow用户

发布于 2020-05-01 22:01:19

你可以用负二项分布。负二项分布模拟了在"r“成功之前有n个”失败“的概率。所以

代码语言:javascript
复制
> set.set(100)
> rnbinom(3,  size = 1, prob = 1/6)
[1] 3 7 0

你的三个实验。第一次是3次,第二次是7次,第三次是6次,第一次是6次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61551323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档