frontpage

frontpage

2015年8月3日 星期一

ModelOff攻略 - 解答篇(3)


  以下要分析的是問題篇(3) - Snakes and Ladders的解答。解答內容會用到資料工具中的列表運算(資料表)。



步驟與策略 


  建立蒙地卡羅方法的參考步驟如下:
  1. Define a domain of possible inputs.(定義長度50、元素介於1~6的陣列)
  2. Generate inputs randomly from a probability distribution over the domain.(元素隨機產生)
  3. Perform a deterministic computation on the inputs.(計算步數結果並重複5000回)
  4. Aggregate the results.(統計步數結果的分布)
  在Sheet1中,假設擲骰子50次以內可結束遊戲,因此隨機產生50組骰子點數以模擬遊戲1回的結果。在G欄與H欄的5000回結果是利用假設狀況分析中的「列表運算」,設定空白的「欄變數儲存格」且不指定「欄變數」而得到。

  在雙人參與遊戲的情境下,勝方的步數是其單獨進行遊戲的步數2倍再減1。因為Player 1是先手,所以Player 1單獨進行遊戲的步數等於Player 2單獨進行遊戲的步數時亦獲勝。

  在Sheet2中,當Player 2起點位置移至6時才使得兩者勝率相當。

  在Sheet3中,若Player 2對第一次遇到蛇頭時有豁免而能夠留在原位時,則Player 1的勝率將下降至約42.5%。

結語


  本題重點在塑造自己能夠熟悉的一套蒙地卡羅方法建模流程。

1 則留言:

提姆的新聞剪貼簿 提到...

感謝你的這篇文章,讓我看見運算列表的另一種可能性。
過去我總是利用VBA撰寫巨集來進行模擬,在速度上自然比不過運算列表。

謝謝!