概率n选择k

时间:2013-03-23 12:11:07

标签: probability combinatorics

我试图解决这个TopCoder问题:http://community.topcoder.com/stat?c=problem_statement&pm=10863&rd=14150

但是,我的解决方案并不好,我不明白为什么。

我理解那里给出的解决方案(下页:寻找LotteryPyaterochka):http://apps.topcoder.com/wiki/display/tc/SRM+466

所以,总结一下我的问题:

我们正在玩一种特殊的彩票:

此抽奖中的每张票都是一个N行和5列的矩形网格,其中每个单元格包含1到5 * N之间的整数。单个票证中的所有整数都是不同的。

彩票组织者随机选择5个不同的整数,每个整数在1到5 * N之间。 5个整数的每个可能子集具有相同的被选择概率。这些整数称为中奖号码。当且仅当它包含至少包含3个中奖号码的行时,票证才被视为赢家。

我们想知道中奖彩票的数量(因此,在同一行中至少有3个中奖号码)

所以,我坚持了以下步骤:

选择出现在“获胜行”中的5个数字的多种方式。

topCoder解决方案说:

  

(#选择出现在'获胜行'中的5个数字的方式)=

     

(#选择出现在'获胜行'中的x中奖号码的方式)*(选择5-x'非中奖号码的#路径)=

     

(5选择x)*((5N-5)选择(5-x))

     

由于此行中的中奖号码数至少为3,因此x可以是3或4或5.所以,我们有   (选择出现在“获胜行”中的5个数字的#)=

     

(5选3)*((5N-5)选择2)+(5选4)*((5N-5)选择1)+(5选5)*((5N-5)选择0) )

我说的话:

  

(#选择出现在'获胜行'中的5个数字的方式)=

     

(5个中奖号码中的3个号码)*(2个号码完成5N-5非中奖号码中选择的行+之前未选择的2个中奖号码)=

     

(5N选择3)*((5N-3)选择2)

对于N = 10,我的方法给出:(5选3)*(47选2)= 10810

并且topcoder方法给出:((5选3)(45选2)+(5选4)(45选1)+(5选5)*(45选0) )= 10126

为什么我的方法错了?

由于

1 个答案:

答案 0 :(得分:2)

让我们说中奖号码是1,2,3,4和5.现在让我们看一下包含获胜行中所有五个号码的票证。

您的方法多次计算该票证,因为它包含在以下计数中:

1 2 3 + two other numbers
1 2 4 + two other numbers
1 2 5 + two other numbers
1 3 4 + two other numbers
...

同样的事情发生在有四个中奖号码的门票上。

这就是为什么这些案件需要单独计算的原因。