You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言模拟时遇报错:Error in integer(n) : invalid 'length' argument

问题原因与解决方法

错误根源

replicate()函数的第一个参数要求是单个整数,用来指定模拟的重复次数。但你代码里的n <- c(1:100000)生成了一个包含1到100000所有整数的向量,不是单个数值,这就导致replicate()无法识别有效的重复次数,从而抛出Error in integer(n) : invalid 'length' argument错误。

修正方案

方案1:单次固定重复次数

如果你只是想运行100000次模拟,把n定义为单个整数即可:

n <- 100000
p <- mean(replicate(n, any(duplicated(sample(1:365, size = 30, replace = TRUE)))))

方案2:观察n递增时的结果变化

如果要观察n从1到100000增大时的结果趋势,需要遍历每个n值计算对应概率(直接跑1到100000会很慢,建议先小范围测试):

# 定义要测试的n值范围,这里用1到1000示例
n_values <- 1:1000
# 遍历每个n值计算概率
p_values <- sapply(n_values, function(k) {
  mean(replicate(k, any(duplicated(sample(1:365, size = 30, replace = TRUE)))))
})
# 绘制趋势图
plot(n_values, p_values, type = "l", xlab = "重复次数n", ylab = "至少一对生日相同的概率")

内容的提问来源于stack exchange,提问作者ssin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 06:35:30