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

如何在R语言中模拟指定概率的加载骰子?含验证绘图需求

模拟加载骰子的R实现

嘿,我来帮你搞定这个加载骰子的模拟!其实你已经离答案很近了——sample()函数本身就支持自定义概率,只需要用到它的prob参数就行,完全不用复杂的逻辑。

步骤1:定义概率向量

你已经算出了正确的p=6/37,先把每个骰子面对应的理论概率明确下来(直接代入p值计算):

# 先定义已知的p值
p <- 6/37

# 生成各面的概率向量:顺序对应骰子1-6面
prob_vec <- c(2*p/3, p, p, p, p, 3*p/2)

# 可选但推荐:验证概率和是否为1(确保计算没错)
sum(prob_vec) # 运行后应该返回1,说明概率分布合法

这里算出来的prob_vec实际是c(4/37, 6/37, 6/37, 6/37, 6/37, 9/37),总和刚好是1,完全符合概率分布要求。

步骤2:模拟加载骰子投掷

和公平骰子的代码几乎一样,只需要多指定prob参数为我们刚才生成的概率向量。比如模拟10000次投掷(次数越多,结果越接近理论值):

# 设置随机种子,让结果可复现(可选但方便调试)
set.seed(123)

# 模拟10000次加载骰子投掷
num_rolls <- 10000
loaded_rolls <- sample(1:6, size = num_rolls, replace = TRUE, prob = prob_vec)

如果只需要单次投掷,直接把size改成1就行:sample(1:6, size=1, replace=TRUE, prob=prob_vec)。

步骤3:验证模拟正确性(统计+绘图)

为了确认模拟结果符合预期,我们可以对比模拟频率和理论概率,用图表直观展示:

方法1:基础绘图(无需额外包)

# 计算每个面的模拟出现频率
sim_freq <- table(loaded_rolls)/num_rolls

# 准备对比数据框
comparison_data <- data.frame(
  骰子面 = 1:6,
  理论概率 = prob_vec,
  模拟频率 = as.numeric(sim_freq)
)

# 绘制并排柱状对比图
barplot(t(comparison_data[,2:3]), beside = TRUE,
        names.arg = comparison_data$骰子面,
        col = c("steelblue", "coral"),
        main = "加载骰子:理论概率 vs 模拟频率",
        xlab = "骰子面", ylab = "概率/频率",
        legend.text = c("理论概率", "模拟频率"),
        args.legend = list(x = "topright"))

运行后会生成一张对比图,你能看到模拟频率和理论概率非常接近,说明模拟是正确的。

方法2:用ggplot2绘制更美观的图

如果你习惯用ggplot2,可以这样写(需要先安装包:install.packages("ggplot2")):

library(ggplot2)
library(tidyr) # 用于转换数据格式

# 将宽格式数据转为长格式,方便ggplot绘图
comparison_long <- pivot_longer(comparison_data, cols = -骰子面,
                                names_to = "类型", values_to = "数值")

# 绘制对比图
ggplot(comparison_long, aes(x = factor(骰子面), y = 数值, fill = 类型)) +
  geom_col(position = "dodge", width = 0.7) +
  labs(title = "加载骰子:理论概率 vs 模拟频率",
       x = "骰子面", y = "概率/频率") +
  theme_minimal() +
  scale_fill_brewer(palette = "Set2")

这个图样式更整洁,也更容易调整细节。

小提示

  • 模拟的次数越多(比如10万次),模拟频率就会越贴近理论概率,这是大数定律的体现。
  • 如果你需要重复多次模拟,直接把上述代码封装成函数即可,复用起来更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:20:05