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

在R中计算模拟随机变量概率:A到B最短路径旅行时间分析

模拟从A到B的每日最快路径旅行时间(指数分布场景)

我来帮你把这个路径模拟的内容整理并补充完整,方便你理解和复用:

场景背景:需要从节点A前往节点B,每天都会选择最快路径,各节点间的旅行时间(单位:小时)服从指数分布,我们已经在R中完成了1000次模拟,各路段对应的lambda参数如下:

首先是生成模拟数据的R代码:

# 生成1000次模拟的各路段旅行时间
AtoX <- rexp(1000, 4)  # A到X,lambda=4,期望0.25小时
AtoY <- rexp(1000, 2.5) # A到Y,lambda=2.5,期望0.4小时
XtoY <- rexp(1000, 10)  # X到Y,lambda=10,期望0.1小时
YtoX <- rexp(1000, 10)  # Y到X,lambda=10,期望0.1小时
XtoB <- rexp(1000, 3)   # X到B,lambda=3,期望≈0.33小时
YtoB <- rexp(1000, 5)   # Y到B,lambda=5,期望0.2小时

计算每日最快路径的旅行时间

从A到B的所有可行路径有4条,我们需要计算每条路径的总时间,然后每天取最短的那条作为当日的旅行时间:

# 计算每条路径的总旅行时间
path_A_X_B <- AtoX + XtoB          # 路径1:A→X→B
path_A_Y_B <- AtoY + YtoB          # 路径2:A→Y→B
path_A_X_Y_B <- AtoX + XtoY + YtoB # 路径3:A→X→Y→B
path_A_Y_X_B <- AtoY + YtoX + XtoB # 路径4:A→Y→X→B

# 逐天筛选最快路径的时间
daily_fastest_time <- pmin(path_A_X_B, path_A_Y_B, path_A_X_Y_B, path_A_Y_X_B)

# 计算1000次模拟的每日平均旅行时间
avg_daily_time <- mean(daily_fastest_time)
cat("模拟得到的每日平均旅行时间:", round(avg_daily_time, 2), "小时\n")

一些关键说明

  • 指数分布的rexp(n, lambda)函数中,lambda是率参数,该分布的期望旅行时间为1/lambda,比如A→X路段的平均旅行时间是0.25小时。
  • pmin()函数可以高效地对多个向量逐元素取最小值,完美适配我们“每天选最快路径”的需求。
  • 1000次模拟的样本量足够大,能得到比较稳定的平均结果,如果需要更精确的数值,可以增加模拟次数(比如改成10000次)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:07:30