【问题标题】:probability n choose k概率 n 选择 k
【发布时间】:2013-03-23 20:26:32
【问题描述】:

我试图解决这个 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 之间的整数,包括 1 和 5*N。一张票中的所有整数都是不同的。

彩票组织者随机选择 5 个不同的整数,每个整数介于 1 和 5*N 之间,包括 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个号码)*(5N-5个未中奖号码中的2个完成行选择+之前未选择的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

为什么我的方法不对?

谢谢

【问题讨论】:

    标签: probability combinatorics


    【解决方案1】:

    假设中奖号码是 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
    ...
    

    同样的情况也发生在有四个中奖号码的彩票上。

    这就是为什么这些案件需要分开统计的原因。

    【讨论】:

    • 非常感谢您清晰(快速)的回答。有没有一种简单的方法来计算我多次计算的票数(以及多少次),所以我可以这样做:MyMethod - 那个数字
    • @taktak004:我不确定。我怀疑这最终会比 TopCoder 的方法更复杂。
    猜你喜欢
    • 2017-11-23
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2011-10-20
    相关资源
    最近更新 更多