R语言.求解code和怎样写Q1:>repeat {> U if ( U[2[ < p [round (U[1]) +1]) break #这个呢?} Q2:写个方程 ,模拟2人a,b打羽毛球.假设第1人拿了21分就算赢.找出a赢的几率.我觉得用runif模拟21次?
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 16:19:41
![R语言.求解code和怎样写Q1:>repeat {> U if ( U[2[ < p [round (U[1]) +1]) break #这个呢?} Q2:写个方程 ,模拟2人a,b打羽毛球.假设第1人拿了21分就算赢.找出a赢的几率.我觉得用runif模拟21次?](/uploads/image/z/9730216-64-6.jpg?t=R%E8%AF%AD%E8%A8%80.%E6%B1%82%E8%A7%A3code%E5%92%8C%E6%80%8E%E6%A0%B7%E5%86%99Q1%3A%3Erepeat+%7B%3E+U+if+%28+U%5B2%5B+%3C+p+%5Bround+%28U%5B1%5D%29+%2B1%5D%29+break+%EF%BC%83%E8%BF%99%E4%B8%AA%E5%91%A2%3F%EF%BD%9D+Q2%3A%E5%86%99%E4%B8%AA%E6%96%B9%E7%A8%8B+%2C%E6%A8%A1%E6%8B%9F2%E4%BA%BAa%2Cb%E6%89%93%E7%BE%BD%E6%AF%9B%E7%90%83.%E5%81%87%E8%AE%BE%E7%AC%AC1%E4%BA%BA%E6%8B%BF%E4%BA%8621%E5%88%86%E5%B0%B1%E7%AE%97%E8%B5%A2.%E6%89%BE%E5%87%BAa%E8%B5%A2%E7%9A%84%E5%87%A0%E7%8E%87.%E6%88%91%E8%A7%89%E5%BE%97%E7%94%A8runif%E6%A8%A1%E6%8B%9F21%E6%AC%A1%3F)
R语言.求解code和怎样写Q1:>repeat {> U if ( U[2[ < p [round (U[1]) +1]) break #这个呢?} Q2:写个方程 ,模拟2人a,b打羽毛球.假设第1人拿了21分就算赢.找出a赢的几率.我觉得用runif模拟21次?
R语言.求解code和怎样写
Q1:>repeat {
> U if ( U[2[ < p [round (U[1]) +1]) break #这个呢?}
Q2:
写个方程 ,模拟2人a,b打羽毛球.假设第1人拿了21分就算赢.找出a赢的几率.我觉得用runif模拟21次?
R语言.求解code和怎样写Q1:>repeat {> U if ( U[2[ < p [round (U[1]) +1]) break #这个呢?} Q2:写个方程 ,模拟2人a,b打羽毛球.假设第1人拿了21分就算赢.找出a赢的几率.我觉得用runif模拟21次?
q1,R2.15.3中runif的原型是runif(n,min = 0,max = 1),对应生成多少个随机数,均匀分布中的a和b;
关于两个max,第一个max=.是指函数runif中对应的max参数,其值是c(length(p) -0.5,max(p));第二个max是一个运算,其优先级高于runif,在runif之前就完成运算.故不矛盾.
总结一下,这两个max一个是参数名称,一个是函数运算.同理,多个max运算也不矛盾,max分别运算,结果分别保存,然后传递给runif函数.
break的总用是跳出最近的循环,也就是如果满足if的条件就跳出repeat;
q2,我的思路是,不保证对,仅做参考.
如果打41局,一定能分出胜负,如果仅考虑先得21分者胜的话;
二项分布x<-rbinom(41,size = 1,prob = 0.5) 模拟了两个人的比赛情况,0表示a输,1表示a赢.
函数func计算谁先得到21分;由于x中只有0,1,故可在21:41的长度区间内,依次用sum和长度判断1先到凑够21个还是0先凑够21个
func <- function(x){
for (i in 21:length(x)){
if (sum(x[1:i]) >= 21) return ('a')
if (i - sum(x[1:i]) >= 21) return('b')
}
}
func(x)
funx(x) 计算出谁赢;
在这个基础上,通过重复多次上述过程,代码中500次,可以算出a赢的比例,即概率;
v <- vector(length=500)
for (i in 1:500){
x<-rbinom(41, size = 1, prob=0.5)
v[i] <- func(x)
}
length(v[v=='a'])/500
随着重复次数的增加,这个概率最终趋近于0.5,也就是rbinom中的概率;
p.s.lz的题都不错,能否推荐下?
我自从学完R之后,一直也没怎么系统做题,做了几天题也挺有收获,在此也感谢下lz;