Re: [中譯] Projecteuler (280) Ant and seeds

看板puzzle (益智遊戲 - 數獨,拼圖,推理,西洋棋)作者 (烏托馬雅)時間16年前 (2010/03/04 19:10), 編輯推噓5(506)
留言11則, 5人參與, 最新討論串5/5 (看更多)
我解掉了 馬可夫鏈太複雜了 我用DP去解 一樣分成11段去做 初始狀態 → 駝第一顆豆 → 放第一顆豆 → 駝第二顆豆 → ... → 放第五顆豆 第一段,初始狀態 → 駝第一顆豆 第二段,駝第一顆豆 → 放第一顆豆 第三段:放第一顆豆 → 駝第二顆豆 (依此類推) . . . 對於每一段,假設1步要走一時間單位,對於5x5每一格,在經過了t時間單位後 螞蟻恰好走了t步而停在這一格上,都會有一對應的機率 舉例來說,假設在某一個時間點,螞蟻在(2,2)上走了N步的機率是P,那麼下一步中 碼蟻走了(N+1)步而到相鄰4格中的機率皆為P/4, 所以在相鄰四格其紀錄N+1步的機率的資料上分別加上P/4 對於DP來說,等於是每一個時間點t,掃過5x5的格子一遍,分別求出螞蟻恰好走了t步而 停在這一格上的機率(當然,機率有可能是零) 期望值就是每一步的機率乘上步數之總和 用陣列來紀錄這個機率,紀錄到2000步即可 因為兩千步以上的機率發生機率很小,機率乘以步數的乘積相當小,可以略去不計 所以要有[5x5x2000]筆資料 當螞蟻抵達最上一列或最下一列要放下或搬運種子時,他會有若干選擇, 以第一段來說,它可以有5種開始駝運種子的選擇, 它究竟是最先抵達最左邊的格子開始搬運?還是最先抵達最右邊的格子開始搬運? 也就是說,對於該段的每一個結束點都會有一個機率, 當然,這也可以用上述DP方法,分別記錄其機率, 每一個結束點的機率,其總和應為1。 對於11段中每一段來講,起始點會有若干種選擇(第一段除外),結束點會有若干種選擇 每一個組合都要去跑 並紀錄其停在每個不同結束點的機率 最後,算出5!x5!的不同選擇路徑的期望值e跟機率p的總和 也就是Σe*p 還是滿複雜的@_@ 答案是430.08xxxx 跟我當初模擬的狀況429.7~429.9差了那麼一點點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.174.216

03/04 19:17, , 1F
這一系列文章讓人好孤獨...因為都看不懂 Q_Q
03/04 19:17, 1F

03/04 19:20, , 2F
03/04 19:20, 2F

03/04 19:22, , 3F
推2000步
03/04 19:22, 3F

03/04 19:27, , 4F
所以說這題其實不難,只是很麻煩而已。
03/04 19:27, 4F

03/04 19:28, , 5F
小聲: 機率要收斂到10^-6 似乎不需要到 2000步
03/04 19:28, 5F

03/04 19:29, , 6F
蠻難的 因為很容易出錯 程式也不好寫
03/04 19:29, 6F

03/04 19:30, , 7F
我本來跑100步 但答案不對 才改成2000步
03/04 19:30, 7F

03/04 19:31, , 8F
1000步 寫錯
03/04 19:31, 8F

03/04 19:32, , 9F
請受小弟一拜 XD
03/04 19:32, 9F

03/04 19:34, , 10F
不用了 有一個人更厲害 我晚了他3天才解出來XD
03/04 19:34, 10F
※ 編輯: utomaya 來自: 219.70.174.216 (03/04 21:49)

03/05 11:55, , 11F
level 1的小弟朝聖
03/05 11:55, 11F
文章代碼(AID): #1BZvKOax (puzzle)
文章代碼(AID): #1BZvKOax (puzzle)