挖雷遊戲的概率

轉自:http://blog.csdn.net/freeboy1015/article/details/7544835

編程之美最後一題“挖雷遊戲的概率”沒附答案, 有一則腳註雲“此題適合MATLAB用戶解答”, 頗感有趣. 題目說, 一局16×16的掃雷遊戲剛開始, 只翻開了兩格, 分別顯示數字1和2, 如下圖所示(只畫出了3×5的局部示意圖). 設地雷總數從10逐漸增加到240, 請分別作出圖中A, B, C三處爲地雷的概率曲線.

此題適合用MATLAB解答是因爲要求作出概率曲線. 如果地雷總數一定, 其實手算也很容易. 根據數字1和2的提示, 圖示3×5方格中至少2個地雷, 至多3個地雷. 記M=16×16=256爲掃雷遊戲中格子總數, N爲地雷總數. 分兩種情況考慮.

  1. 圖中共2個地雷時可能的情況總數: (M15N2)(31)(51).
    • A處爲地雷的情況總數: 0.
    • B處爲地雷的情況總數: (M15N2)1(51).
    • C處爲地雷的情況總數: (M15N2)(31)1.
  2. 圖中共3個地雷時可能的情況總數: (M15N3)(51)(52).
    • A處爲地雷的情況總數: (M15N3)1(52).
    • B處爲地雷的情況總數: 0.
    • C處爲地雷的情況總數: (M15N3)(51)(41).

要求的概率可以簡單地相除得到:

P(A)P(B)P(C)=10(M15N3)15(M15N2)+50(M15N3);=5(M15N2)15(M15N2)+50(M15N3);=3(M15N2)+20(M15N3)15(M15N2)+50(M15N3).

注意到所求的是比值, 所以(M15N2)(M15N3)的值並不重要, 只需知道二者之比. 可以利用

(M15N3)=MN12N2(M15N2)

簡化計算.

MATLAB程序很簡單, 就不貼了. 最後附上曲線圖.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章