Skip to content

Instantly share code, notes, and snippets.

@sing1ee
Created July 24, 2013 06:27
Show Gist options
  • Save sing1ee/6068438 to your computer and use it in GitHub Desktop.
Save sing1ee/6068438 to your computer and use it in GitHub Desktop.
52张牌,四张A,随机打乱后问,从左到右1张一张翻直到出现第一张A,请问平均要翻几张牌?

###第一张A的概率

####原题

52张牌,四张A,随机打乱后问,从左到右1张一张翻直到出现第一张A,请问平均要翻几张牌?

####第一种分析

摸到第一张A之前的都是其他的牌,那么,之前会有多少种可能呢? 之前可能会有0张,1张。。。。48张。考虑4张A在牌中的位置,他们把其他牌分成了5份(四个点把直线分成五段)。每一份的个数从0-48不等,完全随机的情况下,每份的平均长度为48/5=9.6,摸完这9.6张后,接下来的就是第一张A,故平均需要摸9.6+1=10.6张,即11张。

####另一种方法 通常情况下,设n张牌要翻f(n)次,则f(4)=1。翻第一张牌分“翻到”和“没翻到”两种情况:若翻到,则只翻了1次;若没翻到,则要翻1+f(n-1)次。故f(n) = 1*(4/n) + [1+f(n-1)]*(n-4)/n。可得f(n)=(n+1)/5,f(52)= 53/5。

假设n张牌要翻f(n)次。当有4张牌的时候,都是A。显然f(4)=1。当n>4的时候,f(n)是什么呢?从第一张开始翻,有两种情况:

  • 如果翻到A,则1次,概率是4/n
  • 如果没有翻到,则需要1+f(n-1)次,概率是(n-4)/n

则得到递归式:f(n)= 1 × 4/n + (1+f(n)) × (n-4)/n;当然,在我们的题目中,n=52。如何解这个递归式呢?

n取值f(n)
41
5f(5)=4/5+2/5=6/5=(5 + 1)/5
6f(6)=4/6+(1 + 6/5)×2/6=7/5=(6 + 1)/5
7f(7)=4/7+(1 + 7/5)×3/7=8/5=(7 + 1)/5
nf(n)=(n+1)/5
递归证明,由大家完成。

####小应用 玩过三国杀的朋友都知道,黄盖的技能是苦肉,苦肉技能每掉一次血可以多模2张牌(前提是没失血过多)。 现在假如你是黄盖, 这轮底牌还剩11张,你通过记牌知道底牌中至少还有2个桃,你还有3滴血,请问你应不应该苦肉到底,拼一把(到剩一滴血). 应用之前的分析,到第一个桃,平均需要(11-2)/(2+1) +1=4. 4张牌黄盖只需掉2滴血,还能剩一滴血,然后摸到桃还能回血, 看起来还是很合算的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment