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

R语言掷骰子条件概率代码中e_outcomes报错问题求助

问题排查与修正

你遇到的问题核心是对prob包的语法使用有误,prob包没有直接通过e_outcomes(c_outcomes,a_outcomes)这种方式获取条件事件结果的逻辑,以下是具体的修正方案:

正确实现步骤

  1. 生成三个骰子的完整样本空间
library(prob)
# 创建三个骰子的所有可能结果,带概率空间
three_dice <- rolldie(3, makespace = TRUE)
  1. 定义"点数和大于3且小于8"的事件A
# 计算每个结果的点数和
three_dice$sum <- rowSums(three_dice[,1:3])
# 筛选出符合条件的样本
event_A <- subset(three_dice, sum > 3 & sum < 8)
  1. 定义"恰好两个点数相同"的事件判断逻辑
# 写个小函数判断单条结果是否恰好两个点数相同(排除三个全同)
exactly_two_match <- function(dice_vals) {
  length(unique(dice_vals)) == 2
}
  1. 获取条件事件的结果(已知A发生时,恰好两个点数相同的所有情况)
# 直接在事件A的样本空间里筛选符合"恰好两个相同"的结果
e_outcomes <- subset(event_A, apply(event_A[,1:3], 1, exactly_two_match))
  1. 验证条件概率(和你之前得到的e_prob对齐)
# 条件概率 = 交集事件概率 / 事件A的概率
e_prob <- prob(e_outcomes) / prob(event_A)

错误原因

  • 你原代码里的e_outcomes(c_outcomes,a_outcomes)是完全不符合prob包语法的写法,prob包没有名为e_outcomes的内置函数,你应该通过子集筛选的方式,从事件A的样本空间里提取满足第二个条件的样本点。
  • 单独写e_outcomes只会返回一个未定义的对象,自然无法得到结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:57:34