You need to enable JavaScript to run this app. 如何在两变量之和大于0的区域内均匀采样两个随机变量
优惠活动
大模型
产品
解决方案
定价
更多

如何在两变量之和大于0的区域内均匀采样两个随机变量

方案缺陷

你设计的条件采样逻辑会导致联合概率密度随x变化,并非常数,因此出现分布不均的问题:

  • 原方案中X服从U(-1,1),边缘密度为f_X(x)=1/2
  • 给定x时Y的条件采样区间长度为1 - (-x) = 1+x,因此条件密度为f_{Y|X}(y|x) = 1/(1+x)
  • 联合密度为两者乘积:f(x,y) = 1/(2(1+x)),该值随x增大而减小,和你观察到的「左密右疏」现象完全吻合

你原方案的采样结果如下图所示,分布不均的特征和推导的密度变化完全对应:
原方案采样结果

修正方案

方案1:拒绝采样(实现最简单)

直接在更大的正方形区域采样,丢弃不符合条件的样本,拒绝率仅50%,绝大多数场景下足够高效:

  • 独立采样 X ~ U(-1, 1)、Y ~ U(-1, 1)
  • 若满足 X + Y > 0 则保留样本,否则重复采样步骤

方案2:逆变换采样(无拒绝,效率100%)

通过调整X的采样分布,保证联合密度为常数,适合需要严格控制采样次数的场景:

  1. 先采样均匀随机数 u ~ U(0, 1)
  2. 转换得到X的取值:x = 2 * sqrt(u) - 1(由X的边缘分布CDF求逆得到)
  3. 再在给定x的条件下采样Y:Y ~ U(-x, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 01:21:04