第n杯水;及重出江湖分析
今日面試題:第n杯水
有一座金字塔,從上到下,第一層有一個杯子、第二層有兩個杯子,依次類推。對杯子進行編號,有如下的形狀:
1 | ||||
2 | 3 | |||
4 | 5 | 6 |
每個杯子的容量為C升,從塔頂倒下L升水,當1號杯子滿了之後,會等量溢位到2號和3號杯子。當2號和3號滿了,2號溢位到4號和5號,3號溢位到5號和6號,注意5號接受來自兩個杯子的水。依次類推。給定C和L,請問,第n杯裡有多少水。
重出江湖分析
原題
n個色子,每個色子m面,每一面的值分別是1-m。你將n個色子同時拋,落地後將所有朝上面的數字加起來,記為sum。給定一個數字x,如果sum>x,則你贏。給定n,m,x,求你贏的概率。
- 1<=n<=100
- 1<=m<=10
- m<=x< n*m
分析
這個題目的描述,是將具體的問題一般化了。掌握了,這個問題的分析,就可以對這類問題通吃。一個具體的情況是什麼呢?兩個色子,每個色子六面,同時拋,求朝上數字和大於某一個值的概率。這個情況比較簡單,兩個色子同時拋,一共36種情況,注意這裡有的和是相同的。此時,最少可以通過窮舉的方法,得到答案。但是本題中的意思,顯然是無法通過窮舉呢?那該如何分析呢?
n個色子,每個色子m面。則一共有m^n中情況(類比上面分析的36種情況)。在這些裡面,有多少個和是大於x的呢?假設,f(n,x)表示n個色子,所有朝上的數字和是x的情況數量。對於某一個色子,每一面朝上的概率是1/m。假設這個色子的k面朝上,1<=k<=m,則f(n,x) = sum{f(n - 1, x - k)} 1<=k<=m。遞迴的終止條件是,當只有一個色子的時候,f(1,k) = 1, 1<=k<=m,其他都是0
則最終的概率為(f(n, x + 1) + … + f(n, m*n)) / m^n。每一個大於x的和的可能情況數量之和除以總的情況數量。
以2個6面色子為例,驗證上面的公式。
和 | 情況數 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | 4 |
6 | 5 |
7 | 6 |
8 | 5 |
9 | 4 |
10 | 3 |
11 | 2 |
12 | 1 |
取和大於10的概率,即2/36+1/36 = 3/36 = 1/12。
根據上面的公式,(f(2, 11) + f(2, 12)) / 12
- f(2, 11) = f(1, 10) + f(1, 9) + f(1, 8) + f(1, 7) + f(1, 6) + f(1, 6) = 2
- f(2, 12) = f(1, 11) + f(1, 10) + f(1, 9) + f(1, 8) + f(1, 7) + f(1, 6) = 1
則概率為3/12,與窮舉方法一致。
【分析完畢】
本文來自微信:待字閨中,2013-07-30釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- 藍橋杯-N皇后
- 真的需要“每天8杯水”嗎?
- 360護心鏡指令碼分析及N種繞過方式指令碼
- Nth Digit 第N個數字Git
- 藍橋杯 (java) 第39級階梯Java
- 第 29 期 Go opentracing jaeger 整合及原始碼分析Go原始碼
- JavaScript 獲取第n個li元素JavaScript
- jQuery查詢第n個li元素jQuery
- CSS 第N個子元素樣式CSS
- Mirai殭屍網路重出江湖AI
- 藍橋杯第9場小白入門賽
- 第14屆藍橋杯B組國賽
- LeetCode878. 第 N 個神奇數字(java)LeetCodeJava
- CSS設定第n個li元素樣式CSS
- CSS 設定第n個li元素樣式CSS
- CSS 倒數第n個li元素樣式CSS
- LeetCode 1137第N個斐波那契數LeetCode
- 快排思想O(N)求第k大數
- LeetCode 1137[第N個泰波那契數]LeetCode
- 獲取陣列第N個元素的方法陣列
- Redis 的第 n 次涉及,我該普及普及了Redis
- Redis 的第 n 次涉及,我該整理整理了Redis
- 一天8杯水?真的太多了!Science重磅:首個「飲水公式」出爐,你可能一直沒喝對公式
- 第20課 SPI協議詳解及裸機程式開發分析協議
- L1-050 倒數第N個字串 (15分)字串
- 166. 連結串列倒數第n個節點
- 數證杯2024-網路流量分析
- 科技愛好者週刊(第 297 期):飲水鳥玩具
- CSS 設定從第n個開始li元素樣式CSS
- [LeeCode 資料庫刷題] 177. 第 N 高的薪水資料庫
- 【LeeCode 資料庫刷題】177. 第 N 高的薪水資料庫
- 重新振作第13天----行至水窮處,坐看雲起時
- Java斐波那契數列的第n項(從0開始,第0項為0,第1項是1)。Java
- 藍橋杯練習試題程式碼及講解
- css 獲取從第n個開始,之後的所有元素CSS
- 資料庫實現原理#2(獲取第N個值).md資料庫
- 0011 刪除連結串列的倒數第N個節點
- 菲波那契數——根據輸入資料中的n,輸出第n項菲波那契數
- 藍橋杯2018年A組-試題D-第幾個幸運數