一個爐石競技場玩家的勝率是75%,他開一次競技場的最終勝場的數學期望是多少?

爐石傳說競技場的規則為三敗出局,最高12次勝利,12次勝利後無法再開局。如果一個人的勝率為75%,那他開始一次競技場在結束後勝利場次的數學期望是多少?


7.68場的結論是正確的。

如果你需要計算任意獲勝概率對應的期望場次,把具體的p代入如下公式:

(1-p)^3sum_{i=1}^{12}inom{i+1}{i-1}	imes p^{i-1}	imes(i-1)+p^{12}sum_{i=1}^3inom{i+10}{i-1}	imes (1-p)^{i-1}	imes 12

其中p^{12}sum_{i=1}^3inom{i+10}{i-1}	imes (1-p)^{i-1} 是12勝的概率,(1-p)^3inom{i+1}{i-1}	imes p^{i-1} 是i-1勝的概率(i取1-12,對應0-11勝)。

也就是@馬頓 用的負二項分布,這是最簡單的方法。

@王平 用了隨機模擬,給出了勝率每增加1%對期望勝場的結果,我用Matlab給一個同樣的過程:

p(橫軸)是贏的概率,y(縱軸)是進場後的期望勝場數。

p=0:0.01:1;
n=length(p);
a=ones(n,12);
b=ones(n,3);
y=zeros(1,n);
for k=1:n
for i=1:12
a(k,i)=(1-p(k))^3*nchoosek(i+1,i-1)*p(k)^(i-1)*(i-1);
end
for j=1:3
b(k,j)=p(k)^12*nchoosek(j+10,j-1)*(1-p(k))^(j-1)*12;
end
y(k)=sum(a(k,:))+sum(b(k,:));
end
plot(p,y)

ps 如果函數nchoosek可以向量對向量做就不用套循環了,大神看到了求指教


結論:大約28.1%的情況下會12勝

計算過程:

方法1.

設在競技場過程中在第12次贏場之前我們輸了X次

 Xsim NB(12,0.75)  P(Xge 12)=P(0le Xle 2)=28.1\%(3s.f.)

方法2.

設在競技場過程中在第3次輸場之前我們贏了X次

Xsim NB(3,0.25) P(0le Xle 11)=0.718872 (6s.f.) P(Xge 12)= 1-P(0le X le 11) = 28.1\% (3s.f.)

解釋一下:

NB(n,p) 是負二項分布(Negative Binomial Distribution),或者帕斯卡分布(Pascal Distribution)。.

我定義NB(n,p) 為 重複成功概率為p 的二選一事件,第n次成功之前失敗次數 的分布。
(有很多其他不同的定義方式,我這裡選擇的和mathematica中使用的相同)

方法一中贏一局競技場算成功,贏的概率是0.75,在第12次贏場之前輸場的數量的分布就是Xsim NB(12,0.75)
P(0le Xle 2) 就是在第12次贏場之前輸0~2次的概率。

方法二中輸一局競技場算成功,輸的概率是0.25,在第3次輸場之前贏場的數量的分布就是Xsim NB(12,0.75)
P(0le Xle 11) 就是在第3次輸場之前贏0~11次的概率。1-P(0le Xle 11) 就是第3次輸場之前贏大與等於12場的概率。(如果輸3次之前贏場超過12場那就是12-0,12-1或者12-2)

雖然可以手算,但是太煩了,我用了Mathematica:

In[13]:= Probability[0 &<= x &<= 11, x [Distributed] NegativeBinomialDistribution[3, 0.25]] Out[13]= 0.718872 In[14]:= 1 - % Out[14]= 0.281128 In[15]:= Probability[0 &<= x &<= 2, x [Distributed] NegativeBinomialDistribution[12, 0.75]] Out[15]= 0.281128

再解釋一下負二項分布NB(n,p)

我們扔很多很多次硬幣,假設這個硬幣扔到正面的概率是p,在扔到第n次正面之前我們扔出了X次反面,那麼X就遵從負二項分布NB(n,p)

要算扔出a 次反面的概率,那就是要算:最後一次扔到正面的概率,乘上除掉最後一次之前扔出n-1 次正面的概率。。

一共扔a+n-1次硬幣,扔出n-1 次正面的情況有inom{a+n-1}{n-1} 種,每一種情況概率是p^{n-1}(1-p)^an-1 次正面和a 次反面)。所以除掉最後一次之前扔出n-1 次正面的概率是inom{a+n-1}{n-1}p^{n-1}(1-p)^a

上面這個值再乘上最後一次是反面的概率(1-p) 就是我們要求的。

所以在扔出第n 次正面之前,扔出a 次反面的概率是inom{a+n-1}{n-1}p^n(1-p)^a

如果要求扔bc 次反面的概率,只需要對上式做一次求和就可以。


簡單寫了個程序,執行了一億輪競技場,每輪打到12勝或者3敗,勝率75%情況下平均勝場為7.68左右。更一(無)般(聊)地,把測試次數降到了一千萬輪每次,我把勝率從1%到99%的平均勝場都算了下,結果如下圖:

c#代碼如下:

class Arena
{
Random seed = new Random();
int winPercent = 1;
long testRounds = 10000000;

public string testAll()
{
string result = "";
while (winPercent &< 100) { result += winPercent.ToString() + " " + test().ToString() + " "; winPercent ++; } return result; } public double test() { double avereageWins = 0; for (int i = 0; i &< testRounds; i++) avereageWins += oneGame(); avereageWins /= testRounds; return avereageWins; } public int oneGame() { int win = 0; int lose = 0; while (win &< 12 lose &< 3) { if (seed.Next(100) &< winPercent) win++; else lose++; } return win; } }


謝邀...然而我作為函數式玩家不做非泛化的題...

難度打到頂,勝率恆定為p ,然後贏w 局或輸l 局終止

求總的局數的期望...解答過程有點長,先給你看個數值上的答案吧:

平均進行局數是右下角10.24局,此時期望勝7.68場,敗2.56場

12勝情況下平均要進行13.44局比賽,另外成功的概率只有28%...

平均要打9場的樣子會挑戰失敗......

要保證每局82%的成功率才能保證50%的可能性完成挑戰

====================================

第一反應馬爾科夫狀態鏈...然後想到一共wl 個狀態...寫出來運算量大了點...

再想想發覺自己想多了,過程無關啊,只和結果有關...

最後一局贏的時候,前面必須贏w-1 局,然後允許輸0 sim l-1 局.

一共是[sumlimits_{l = 0}^{l - 1} {C_{w + l - 1}^{w - 1}} ] 種情況,反之最後一局是敗同理[sumlimits_{w = 0}^{w - 1} {C_{w + l - 1}^{l - 1}} ] 種情況...

總的情況數就是 [sumlimits_{l = 0}^{l - 1} {C_{w + l - 1}^{w - 1}} + sumlimits_{w = 0}^{w - 1} {C_{w + l - 1}^{l - 1}} = frac{{Gamma (l + w + 1)}}{{Gamma (l + 1)Gamma (w + 1)}}]種.

驗算下這個公式...沒錯...

ArenaTimes = Function[{w, l}, Gamma[1 + l + w]/(Gamma[1 + l]*Gamma[1 + w])]
ArenaTimes[12, 3]
(*455*)

------------------------------------------------------------------------------------

然後把概率分進去求和

還是根據最後一局勝敗分類:

[egin{aligned} P(L) = (1 - p)sumlimits_{w = 0}^{w - 1} {C_{w + l - 1}^{l - 1}{p^w}{{(1 - p)}^{l - 1}}} \ = {(1 - p)^l}sumlimits_{w = 0}^{w - 1} {C_{w + l - 1}^{l - 1}{p^w}} \ = {(1 - p)^l}left( {{{(1 - p)}^{ - l}} - {p^w}C_{w + l - 1}^{l - 1}{{mkern 1mu} _2}{F_1}(1,l + w;w + 1;p)} 
ight)\ = 1 - wC_{w + l - 1}^{l - 1}{B_p}(w,l)\ P(W) = psumlimits_{l = 0}^{l - 1} {C_{w + l - 1}^{w - 1}} {p^{w - 1}}{(1 - p)^l}\ = 1 - {(1 - p)^l}{p^w}C_{w + l - 1}^{w - 1}{{mkern 1mu} _2}{F_1}(1,l + w;l + 1;1 - p)\ = 1 - P(L)\ end{aligned} ]

數值驗證無誤,Oh,Yes...這玩意兒算著好煩...求錯我要哭了...

ArenaWinP[w_,l_,p_]:=1-w Beta[p,w,l] Binomial[-1+l+w,-1+l];
ArenaLoseP[w_,l_,p_]:=1-(1-p)^l p^w Binomial[-1+l+w,-1+w] Hypergeometric2F1[1,l+w,1+l,1-p];
Through[{ArenaWinP,ArenaLoseP}[12,3,.75]]
(*{0.7188723757863043`,0.2811276242136955`}*)

---------------------------------------------------------------------------------------

接下來算期望和:

[egin{gathered} EL = sumlimits_{w = 0}^{w - 1} {(w + l)(1 - p)C_{w + l - 1}^{w - 1}{p^w}{{(1 - p)}^{l - 1}}} hfill \ EW = sumlimits_{l = 0}^{l - 1} {(w + l)pC_{w + l - 1}^{w - 1}{p^{w - 1}}{{(1 - p)}^l}} hfill \ E(L) = p(EL + EW) hfill \ E(W) = (1 - p)(EL + EW) hfill \ end{gathered} ]

封裝成函數吧:

Clear["`*"]
ArenaPropertiesName=ToString/@{"總可能勝負鏈數","勝利概率","失敗概率",
"勝利平均進行場數","失敗平均進行場數","平均進行場數","平均勝利場數","平均失敗場數"};
ArenaExpection[w_,l_,p_:p]:=Block[{AT,AL,AW,EL,EW,pro},
AT=Gamma[1+l+w]/(Gamma[1+l]*Gamma[1+w]);
AL=w Beta[p,w,l] Binomial[-1+l+w,-1+l];
AW=1-AL;
EL=(1-p)^l Sum[(i+l)Binomial[i+l-1,l-1]p^i,{i,0,w-1}];
EW=p^w Sum[(w+i)Binomial[w+i-1,w-1](1-p)^i,{i,0,l-1}];
pro={AT,AL,AW,EL/AW,EW/AL,EL+EW,p(EL+EW),(1-p)(EL+EW)};
Association@@Rule@@@Transpose[{ArenaPropertiesName,FullSimplify@pro}]]
ArenaPlot[w_,l_,pro_]:=Plot[Evaluate[ArenaExpection[w,l]/@pro],{p,0,1},PlotTheme-&>"Business",PlotLegends-&>pro]
ArenaPlot[12,3,{"平均進行場數","平均勝利場數","平均失敗場數"}]

可以看到當勝率為90%左右時平均進行的場數最高...另外勝率符合負二項分布...

也就是	ext{Win[p]}=1092 B_p(12,3)

從圖上看每局勝率低於60%的玩家洗洗睡吧,12勝不是你們的菜...


手機碼字,先寫個大概思路:

分別計算出0(勝場)-3(負場)、1-3、2-3、3-3…………10-3、11-3、12-2、12-1、12-0各自的概率,然後乘以各自的勝場數,最後相加得到的就是勝場的數學期望了。

0-3(就是連輸3場概率):25%×25%×25%

1-3(前三場任選一場贏第四場必輸的概率):(25%×25%×75%)×3×25%

其餘概率類推。

(寫了個程序用隨機數模擬了下,75%勝率的勝場期望大概7.67場左右)


其實這遊戲勝率不好這麼算……前幾勝有更大概率遇上水平低的玩家,就像股票沒有「假設都是理性投資人」的情況。所以大家的答案大概會和每天泡在競技場里的人相違背,很多時候都是三勝以後開始算一個大概的勝率……


打了n場以後,恰好輸3次的概率。因為第三敗總是最後一場,那麼要考慮的就是前n-1場中敗2場。也就是說在n-1場中選出2個敗場。也就是有(n-1)(n-2)/2種情況。

這個數再乘0.75^(n-3)+0.25^3就是勝利n-3場的概率。

所以勝利n場的幾率是((n-1)(n-2)/2)*(0.75^(n-3)*0.25^3)。n&>=4。

組合很差的高中生,錯了求輕噴。

手機拍屏見諒。圖2為最終勝利n場的概率。

上面的沒有考慮12勝的情況。

12-0的的概率為0.75^12,

12-1的概率為0.75^12*0.25*13

12-2的概率為0.75^12*0.25^2*14*13/2

加起來是0.3147837482392788


這題看著來氣,

經常一勝,偶爾兩勝,很少三勝,往往不勝,幾乎沒有四勝以上的我回答不了!


其實這題用樹狀圖都可以做,可是沒有那麼大的紙


用個簡単的方法

毎一個格子代表一個狀態、裡面寫著経過該狀態的概率。

検索一下動態規劃


反正不是12勝就是13勝


假設他已經輸了3場,那麼他贏的期望場數是9場


推薦閱讀:

從自然數 1 ~ n 中隨機取 m(1≤m≤n)個,其中最大數的數學期望是多少?
能包含00~99的最短的長數字有多少個?例:1203包含12,20,03。

TAG:數學 | 概率 | 排列組合 | 爐石傳說Hearthstone |