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

如何确保R语言rbinom()函数返回至少一次成功?

确保rbinom返回至少一次成功的方法

当调用 rbinom(5015, size=2, prob=1/5000) 时,确实存在返回全0的可能(经计算该概率约13%),以下是几种确保至少一次成功的实用方法:

方法1:循环重抽(最直观)

生成样本后检查是否全0,若全0则重新生成,直到得到符合要求的结果:

# 可选:设置随机种子保证结果可复现
set.seed(123)
result <- rbinom(5015, size=2, prob=1/5000)
# 只要结果全0就重新生成
while(all(result == 0)) {
  result <- rbinom(5015, size=2, prob=1/5000)
}

由于全0概率不高,大部分情况下一次生成就能满足要求,仅少数情况需要重抽。

方法2:强制指定一个成功样本

先随机选一个位置,强制该位置出现成功(成功次数按原二项分布的概率比例生成),其余样本保持原分布:

# 随机选一个要设置成功的位置
success_idx <- sample(1:5015, 1)
# 生成初始样本
result <- rbinom(5015, size=2, prob=1/5000)
# 给选中位置生成符合原分布的成功次数(1或2)
success_count <- sample(c(1, 2), 1, prob = c(2*(1/5000)*(4999/5000), (1/5000)^2))
result[success_idx] <- success_count

这种方法无需循环,一次生成即可满足要求,仅对单个样本的分布做微小调整,整体与原分布差异极小。

补充说明

如果场景允许,也可以通过增加样本量 n 或单次试验次数 size 来降低全0的概率,但如果必须严格保留原参数,上述两种方法是更直接的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:22:10