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

如何完善R语言埃尔斯伯格悖论抽奖函数以输出选中颜色?

完善后的埃尔斯伯格悖论模拟R函数

原函数已经完成了黑球、黄球数量的随机生成,接下来只需要针对每一次模拟构建球池并随机抽取即可。以下是完善后的代码:

Ellsberg <- function(n){
  # 固定红球数量为30,符合埃尔斯伯格悖论设定
  r <- 30
  # 生成n次模拟的黑球数量(范围0-60的整数)
  b <- floor(runif(n, 0, 61))
  # 黄球数量 = 60 - 黑球数量,保证黑黄球总数为60
  y <- 60 - b
  
  # 遍历每一次模拟,随机抽取一个球的颜色
  selected_colors <- sapply(1:n, function(i){
    # 构建本次模拟的球池:重复对应颜色的球
    balls <- c(rep("红", r), rep("黑", b[i]), rep("黄", y[i]))
    # 随机抽取1个球
    sample(balls, 1)
  })
  
  # 返回结构化结果:包含每次的球数和选中颜色
  data.frame(
    黑球数量 = b,
    黄球数量 = y,
    选中颜色 = selected_colors
  )
}

代码说明

  • 保留原逻辑:红球固定30个,黑球数量随机生成0到60的整数,黄球数量随黑球数量自动计算,保证总球数为90。
  • 构建球池:对每一次模拟,用rep函数生成对应数量的红、黑、黄球组成的向量。
  • 随机抽取:用sample函数从球池中随机选取1个球,得到选中的颜色。
  • 返回结果:以数据框形式输出,清晰展示每一次模拟的参数和结果,便于后续统计分析。

使用示例

运行Ellsberg(5)会得到类似如下的输出:

黑球数量 黄球数量 选中颜色
1       18       42        黄
2       55        5        黑
3       29       31        红
4        3       57        黄
5       40       20        黑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:20:38