Problem
一天,liouzhou_101 去打印店裏打印了幾張複習資料,花了 4 毛錢,他給了店主1張塊錢的鈔票,結果店主補了他兩枚硬幣,一個5毛錢,一個 1 毛錢。
在走回宿舍的途中,liouzhou_101 一直在想一個問題,5 毛錢的硬幣和 1 毛錢的硬幣哪個更公平?所謂公平,就是指將一枚硬幣拋擲 1 次,他正面朝上的概率是 12,反面朝上的概率也是 12。
結果他一會去就把1毛錢的硬幣拋了 1000 次, 記下來有 531 次正面朝上。然後他突然說道:“這硬幣不公平!!!”
真的不公平嗎?他希望你計算一下出現這種情況的概率。
Sample Input
|
|
Sample Output
|
|
Solution
跟柳柳州互相出題目,已經來到了第 n 天,儘管我出的都是垃圾跟搬運題目,一出題被電得好愉悅,出在多的垃圾題都電不到柳柳州。
在擲硬幣找區間次數 $[a, b]$ 的機率,由於是離散的統計上就只能推組合數學,但又不是曲棍棒的模型 (Hockey Stick Pattern),算了先手動窮舉,用 Stirling’s formula 計算組合,後來發現有幾組數據有問題。
當 n 太大的時候,機率分布就相當稀疏,直接套用數值積分,直接去積分自然分布得到公式稍微困難,利用 simpson 或者是 romberg 去解決,但這樣還會有一個問題,只有在平均值的部分機率非常高 (類似離散的 00000100000),導致自適應辛普森積分會判斷錯誤,提醒剖半積分後測資就正確了不少。似乎合作出了一個可怕的題目,儘管如此,還是得用 mathlab 或者是 wolframalpha 來協助測資的檢驗,剩下的部分就交給柳柳州了。
關於自然分布 (normal distribution):
- 骰子擲 $n$ 次,命中的機率 $p = 1/2$
- 期望值 $\mu = np = n/2$
- 標準差為 $\sigma = \sqrt{np(1-p)} = \sqrt{n/4}$。
期望值 $E[x] = \sum_{k=1}^{n} k \binom{n}{k} p^k (1-p)^{n-k}$,消階層之後提出,計算後得到 $E[x] = np$。
而標準差 $\sigma$ 先從變異數下手
- 定義: $Var[x] = E[(x - \mu)^2] = \sum (x - \mu)^2 P[X = x]$
- 拆解步驟 1: $Var[x] = \sum (x^2 - 2 \mu x + \mu^{2}) P[X = x]$
- 拆解步驟 2: $Var[x] = E[x^2] - 2 E[x] E[x] + E[x] E[x] = E[x^2] - E[x]^2$
- 拆解步驟 3: $E[x^2] = E[x(x-1)] + E[x] = n(n-1)p^2 + np$
- 拆解步驟 4: $Var[x] = np(1-p)$
接下來直接帶入自然分布的公式,參數 $(\mu, \sigma)$,特別小心使用辛普森積分 $[a, b]$ 時,由於問題是離散的,要改變成 $[a - 0.5, b + 0.5]$,防止 $a = b$ 時造成積分錯誤。
特別感謝學弟 firejox 的數學指導。
不久之後,firejox 說道內建函數 erf()
可以解決積分問題,詳見 wiki Gauss error function,因此這一題也可以不寫辛普森積分,套用內建函數在不到 10 行內解決此題。
暴力檢測
|
|
數值積分
|
|