4

我想生成三个随机变量 a、b 和 c 使得 (i) a+b+c=0; (ii) 每个都均匀分布在 (-1,1) 中。

双变量版本很简单:a=2*rand()-1; b=-a。(注:rand() 均匀分布在 (0,1) 中)

以下解决方案不起作用,因为 c 的范围太大:a=2*rand()-1; b=2*rand()-1; c=-ab。

以下解决方案也不起作用,因为 c 不是均匀分布的: a=2*rand()-1; b=2*rand()-1; c=(-ab)/2。

4

3 回答 3

1

在我们知道您的要求是否可能之前,您可能会对稍微不同的问题的答案感兴趣:

是否有可能拥有三个均匀分布的变量 a、b、c,使得它们总和为零?

答案是肯定的:例如,您采用三个均匀分布的变量 a0,b0,c0 和 s=a0+b0+c0 您可以得到 a=a0-s/3, b=b0-s/3 和 c=c0- s/3 具有所需的属性。如果您从a0,b0,c0 = 1.5*rand()-0.75结果 a,b,c 开始,将在 [-1,1] 中,a,b,c 的分布将约为。看起来像这样:

在此处输入图像描述

现在,如果您希望 a,b,c 更接近 [-1,1] 上的均匀分布,您可以尝试类似a0,b0,c0 = 0.75*(2*rand()-1)^(1/3)的方法,它会为 a,b,c 产生类似于以下的分布:

在此处输入图像描述

于 2012-10-22T11:49:01.703 回答
1

它们会均匀分布吗?

我会说投掷 3 个骰子,但预期值是 10.5,这永远不会发生,所以我要说投掷 3 个仅从 1 到 5 的特殊骰子,它们的总和必须为 9。

可能的组合是:

  • 1,3,5 (*6)
  • 1,4,4 (*3)
  • 2,2,5 (*3)
  • 2,3,4 (*6)
  • 3,3,3 (*1)

1,3,5和2,3,4的组合有6种,1,4,4和2,25的组合有3种,3,3,3的组合只有一种。这是 19 种可能的组合(在 125 种可能的场景中)。

在这些中,我们得到这些骰子被掷出的次数。(请记住,在 2、2、5 中,每 2 计算 3*,因此是 2 的 6 卷)。

  • 1:9
  • 2 : 12
  • 3 : 15
  • 4 : 12
  • 5 : 9

因此,虽然原始分布是均匀的,但一旦你加入约束,你就会发现它不再是均匀的。(请注意,这些数字加到 57 以作为确认,19 种不同的组合,每种组合 3 次投掷)。

于 2012-10-22T09:35:43.620 回答
1

吴,你是对的,有一个解决办法。这里是建筑。生成 a = 2*rand()-1。现在如果 a < 0,则令 b = a + 1。否则,令 b = a - 1。最后,令 c = -(a+b)。

不难证明 a、b 和 c 在 [-1,1] 上均匀分布。有趣的是,解决方案是对称的,因为所有三个成对相关都是 -1/2。它只需要一次调用随机生成器。

于 2013-10-02T22:18:26.500 回答