用R语言编写一个程序,要求从100个人(编号为1~100)中简单随机抽样10个人,计算出现3连号(及以上)的近似概率
时间: 2023-05-19 18:04:07 浏览: 157
随机生成10个不重复的0-100的数字(实例讲解)
以下是用R语言编写的程序,可以从100个人中简单随机抽样10个人,并计算出现3连号(及以上)的近似概率:
```R
# 设置参数
n <- 100 # 总人数
k <- 10 # 抽样人数
m <- 10000 # 模拟次数
# 定义函数,判断是否出现3连号
has_consecutive <- function(x) {
for (i in 1:(length(x)-2)) {
if (x[i+2]-x[i+1] == 1 && x[i+1]-x[i] == 1) {
return(TRUE)
}
}
return(FALSE)
}
# 模拟抽样并计算概率
set.seed(123) # 设置随机种子,保证结果可重复
count <- 0
for (i in 1:m) {
sample <- sample.int(n, k, replace=FALSE)
if (has_consecutive(sample)) {
count <- count + 1
}
}
prob <- count/m
cat("近似概率为:", prob, "\n")
```
注意:这个程序只是近似计算概率,结果可能会有一定误差。如果需要更精确的结果,可以使用数学方法计算。
阅读全文