首页 > 编程知识 正文

概率论与数理统计教程PPT,统计模拟及其r实现第四章

时间:2023-05-06 01:43:52 阅读:267982 作者:2424

问题

从1~10随机有放回选7个数,求10恰好出现2次的概率.分别作理论和模拟分析

直接R模拟(大数定律) doubleten<-function(n){ m<-0 for (i in 1:n) { u<-runif(7) x<-floor(u*10)+1 if(sum(x==10)==2){m=m+1} } rt<-c('两个10的概率'=m/n);rt}doubleten(10000) 其中函数说明

sum
是不是很奇怪为什么这里sum实现了统计某个值个数的操作!!!!
下面是官网文档,没有显示特别的关于统计某个值个数的操作。

Description

sum returns the sum of all the values present in its arguments.

Usage

sum(…, na.rm = FALSE)
Arguments


numeric or complex or logical vectors.
na.rm
logical. Should missing values (including NaN) be removed?
Examples

Pass a vector to sum, and it will add the elements together.
sum(1:5)

Pass several numbers to sum, and it also adds the elements.
sum(1, 2, 3, 4, 5)

In fact, you can pass vectors into several arguments, and everything gets added.
sum(1:2, 3:5)

If there are missing values, the sum is unknown, i.e., also missing, ….
sum(1:5, NA)
… unless we exclude missing values explicitly:
sum(1:5, NA, na.rm = TRUE)

调试分析,原来原因如下

> a<-c(1,2,2,3,3,3)> a==3[1] FALSE FALSE FALSE TRUE TRUE TRUE> sum(a==3)[1] 3

赞叹此法真的巧妙!!!

运行结果 > doubleten<-function(n){+ m<-0+ for (i in 1:n) {+ u<-runif(7)+ x<-floor(u*10)+1+ if(sum(x==10)==2){m=m+1}+ }+ rt<-c('两个10的概率'=m/n);rt+ }> doubleten(10000)两个10的概率 0.122 DONE!!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。