卡片组的概率

时间:2009-12-09 05:57:36

标签: probability playing-cards

for(i=1;i<=n;i++)
{
    pick a random index j between 1 and n inclusive;
    swap card[i] and card[j];
}

对于上面的代码,我试图找出原始card[k]在广告n中清盘的概率是1/n吗?我想这是(n-1)/n * 1/(n-1)=1/n。但你可以帮助我证明这一点吗?

1 个答案:

答案 0 :(得分:3)

k th 卡在槽n中结束的概率为1 / n的原因是因为n th 迭代完全确定哪个卡在插槽n中结束! (&lt; ---这是一个感叹号,而不是一个因子: - )。

想一想。在循环的最后一次迭代中,您有一些随机排列...并且k th 卡位于某个槽中。它进入槽n的概率就是你随机选择k th 卡的概率。假设你选择具有同样可能概率的牌,则该概率为1 / n。

希望这有帮助。

- 汤姆

<强> 更新

你可能会认为我做了一个错误的假设。也就是说,您可能想知道...如果k th 卡最终会出现在具有不同概率的不同插槽中,该怎么办?如果“随机改组”不是真的随机怎么办?这就是为什么只有最后一次迭代很重要的原因:

令p i 表示k th 卡在n-1次迭代中位于时隙i中的概率(即 - 它位于结束前的时隙i中)。

然后卡k在槽n中结束的概率(在n th 迭代中)是:

(1 / n)p 1 +(1 / n)p 2 + ... +(1 / n)p n

但请注意我们可以考虑(1 / n)因此我们有:

(1 / n)(p 1 + p 2 + ... + p n

因为这些是概率,所以很明显p i 的总和(i = 1到n)必须等于1.所以我们只剩下(1 / n )。

这只是更正式地表明在n th 迭代之前事态的随机性并不重要。