某台阶有n阶,青蛙每次以1/3概率跳一阶,以2/3概率跳二阶。(注:若只剩1级台阶,此时步数+1就是总步数)研究青蛙平均要跳多少步才能爬上台阶。
(1)自编函数,以n(台阶阶数),rep(重复次数)为参数,返回步数平均值。
(2)n=20,rep=5000时,用所编函数计算平均步数。
你好,答案仅供参考,(基本上该注释的都注释了):
my_function <- function(n, rep){#定义函数my_function
total_time <- 0 #总次数初始化为0
for(i in 1:rep){ #重复rep次
s <- 0 #每次初始台阶数
count <- 0 #每次初始化步数
while(s<n){ #当台阶数小于n继续爬
a <- runif(1, min <- 0, max <- 1 ) #随机生成0到1之间的数
count <- count + 1 #记录步数+1
if(a<1./3.)s <- s+1 #如果随机数小于1/3,按照1/3概率往上爬1阶台阶
else s <- s+2 #否则按照2/3概率往上爬2阶台阶
}
total_time <- total_time + count #每一次爬台阶记入总步数中
}
avg_time <- total_time/rep #计算平均步数
return (avg_time) #返回平均
}
# 以下为调用函数部分
n <- 20
rep <- 5000
avg_step <- my_function(n,rep)#调用函数
print(avg_step)#打印平均所用步数
由于是随机的,这里打印的结果仅供参考用:
12.2318
前面是自编函数,后面是调用函数,有帮助还望给个采纳支持答主哦