《中國有嘻哈》雙冠軍概率怎麼算出來的?
看了總決賽,雙冠軍的概率為什麼數量級會那麼大。
和朋友討論了一下覺得不應該啊,這到底咋算出來的?
=======================================
給不了解背景的同學補充下信息:
投票規則是100名大眾評委每人可以投一票,三組導師每組有50票,可以任意分配給兩位選手,比賽的最終結果為125:125, 需要計算這種平票情況出現的概率。
其實就是100位rapper,每人非a即b,共有2的100次方種組合。每個導師50分從0比50到50比0共有51種分配方式,所有組合數為2的100次方乘51乘51乘51。其中考慮a恰好分到125票的情況。首先假設100rapper平票,組合數為c50 100,剩下的3位導師的情況其實就是解3元一次方程組a+b+c=75,再刪去a b c任一變數大於50的情況,解的數量乘前面的c50 100就行,以此類推,如果49比51,三位導師就是76。 51比49,三位導師就是74,,,,,直到0比100或100比0,導師就是125或25。思路大概就是這樣,具體計算可以通過編程實現,由於我不會編程,所以就不計算了,,,,不過由於2的100次方就已經達到了1.26乘10的30次方了,最後給的概率是1.4乘10的18分之一感覺還是靠譜的
概率是 0.0504
簡化模型,總共250票,每個人選pgone和gai的概率都是50%(雖然我知道掃把頭肯定會選gai)
所有的可能 : 2^250
250票中選125票投給pgone 的組合: C(125,250)
雙冠概率 : C(125,250)/(2^250)
windows計算器可以輸入下列公式進行計算:
(fact(250) / (fact(125) * fact(125))) / (2^250)
結果大概是 0.0504
----------------------------------------
另外可以從另一個思路對這個概率有個粗略的判斷,首先會出現 251種最終結果,0:250 1:249…… 250:0。125:125肯定是其中概率最大的,所有結果的概率拉出來應該類似於正態分布,那麼雙冠概率應該大於1/251,節目組說是多少億分之一,我立馬想到應該是錯誤的。
我知道問題出在哪了,那就是選手的得票概率
包括我在內的回答都默認兩名選手的得票率是50%,但節目組呢?
我們設A選手的得票率為x,B選手的得票率為1-x,那麼,在導師的票也用二項分布的模擬的情況下,就會是:
C(125,250)*[x*(1-x)]^125=1.44*10^-18
最後的結果x≈0.756
也就是說,節目組認為,A選手的得票率應該是B選手的大概3倍,結果卻是平局,所以這個情況的出現率就是10億億分之一啦
=========以下錯誤答案====================================
問題主要在於三個導師的投票的分布。
100個大眾評委肯定是二項分布,這個沒異議
如果三個導師的票是均勻分布,那麼就不影響結果,平局的概率就是C(50,100)*0.5^100≈0.0796
但兩個選手實力相近,導師的票就應該也是趨於平分的,那麼就也用二項分布來模擬,那麼其實就是250個大眾評委,平局的概率就是C(125,250)*0.5^250≈0.05
用膝蓋想也知道,雙冠軍概率大於1/251。
一共就251種情況,中位數概率還是最高的,打平概率至少1/251啊
修改線------貌似是251種....不能用膝蓋想啊
得票數最高的演算法是對的,導師只有51中選擇,然後寫了下代碼計算了一下,發現結果還是很接近的。
照理先上結果:
代碼如下:
func Cnm(n, m int) int {
if m &<= 0 {
return 1
}
a := 1
c := 1
for i := 1; i &<= m; i++ {
a *= n
c *= i
n--
}
return a / c
}
func TestHiphop(t *testing.T) {
rapperCount := 100
wu := 50
pan := 50
dog := 50
finalVotes := 125
kinds := big.NewInt(0)
rapperKinds := big.NewInt(0).Exp(big.NewInt(2), big.NewInt(100), big.NewInt(0))
mentorKinds := big.NewInt(0).Mul(big.NewInt(51), big.NewInt(3))
totalKinds := rapperKinds.Mul(rapperKinds, mentorKinds)
for i := 0; i &<= rapperCount; i++ {
for j := 0; j &<= wu; j++ {
if i + j &> finalVotes {
break
}
if i + j &<= finalVotes i + j + pan + dog &>= finalVotes {
if finalVotes - i - j &> dog {
kinds.Add(kinds, big.NewInt(int64(Cnm(rapperCount, j) + dog - (finalVotes - i - j) % dog + 1)))
} else {
kinds.Add(kinds, big.NewInt(int64(Cnm(rapperCount, j) + finalVotes - i - j + 1)))
}
}
}
}
fmt.Println("equal kinds:", kinds)
fmt.Println("total kinds:", totalKinds)
fmt.Printf("probability: 1/%v
", totalKinds.Div(totalKinds, kinds))
}
全憑吳老師力挽狂瀾啊!這有個破雞巴概率啊!吳老師表示你不讓我護犢子,我就讓你玩犢子!
「……不過由於2的100次方就已經達到了1.26乘10的30次方了,最後給的概率是1.4乘10的18分之一感覺還是靠譜的……」
樓主 一個分數有兩個元素,除了分母 還有 分子 ……
由於0.0504>0.05,故不能拒絕原假設。即,在5%的顯著性水平下,不能認為平局的出現是節目組操縱的結果。
先算100位rapper的
把100位rapper用數字1到100代替
假設全投給gai或pgone 所以兩種結果
假設gai只有一票(1或2或3投給gai 其他給pgone 所以有100種結果) 反之 算投給pgone也是100 所以是兩百種結果
假設gai兩票(1 2投或1 3投 有99種結果 然後2 3或2 4或2 5有98種 所以總結果是98+97+...+3+2+1=4950種)pgone也是 所以4950*2=9900種
假設gai三票(1 2 3或1 2 4這類12開頭的有98種 1 3 4,1 3 5這類13開頭的97種 所以1開頭的就有4851種 到2開頭的有4753種 一直到98 99 100的一種 一共是161700種可能性) 所以pgone和gai兩個人就是323400種
突然發現已經三點半了 明天還要上課之後的就不列了
不過到一個人三票的時候已經三十多萬種結果了 後面到四票五票的話結果更多種 所以我覺得節目組的10億億分之1應該也差不了多少
代表節目組送廣大觀眾一段freestyle:
雙冠軍概率十億億分之一,
廣大無腦觀眾瞎質疑。
論概率華少可是老司機,
你們不懂就管好你們自己。
到底結果被誰內定,
彈幕里全都是水軍。
100人rapper投票難追平,
製作人打分來配平。
-----------------------------------------------------------------------------------
真正結果大概是百分之幾的概率,計算過程樓上幾位都說的很清楚了。
即使真的有那麼誇張,難道就憑華少能當場算出來?即使是真的概率,也可以說明了一切都是導演出來的,結果就像台詞一樣報出來了。
即使是說在開賽前,所有選手實力為止,pg one與gai共同獲得冠軍的概率也不止那麼點。
總之就是口胡罷了。畢竟rap嘛,要有些激情,少些理性。
我還是認真算了下的
思路如下:
一共250張票,就存在0:250——250:0 一共251 種可能,拋開現場情況以及各種關係內幕的影響,這251種可能肯定是成正太分布的。
按照標準的正太分布函數 打平的曲線就是X=μ 的時候【不懂的自己回去看高等數學】
這裡μ是定值125 所以決定打平概率的值就是σ
結果為:1/ (√(2Π))/σ
標準狀態 σ 取1時候 39.9%
極限狀態 σ 取250時候 0.16%
怎麼算都算不到億的,只能說明 嘻哈在中國還是文科生玩的比較多
我猜他們使用屁股算出來的
推薦閱讀:
※「墨菲定律」可以被證明嗎?
※如何看待郭敬明《爵跡》里:「他的天賦技能攝魂最低的成功率是50% 也就是說兩次攝魂必有一次成功 」?
※(1-x)^n 在x<<1 的情況下 能近似為 1/2*n(n-1)*x^2-nx+1 么?為什麼?
※拋硬幣直到出現正面為止,實驗停在奇數次的概率是多少?
※算算本題中A獲勝的概率?