[問題] 所有比賽結果(大數據)

看板java作者 (拉維奇)時間10年前 (2015/05/31 23:11), 10年前編輯推噓6(6012)
留言18則, 10人參與, 最新討論串1/3 (看更多)
因為有在看棒球 想寫一支小小程式看一下比賽結果 規則是這樣,目前有 A, B, C, D 四隊比賽 假設 A 目前贏 10 場 B 目前贏 11 場 C 目前贏 10 場 D 目前贏 11 場 每一隊都有可能與其他三支隊伍比賽 而剩下的場次有 30 場以上,每一次勝負假設都一半一半 如果單純用 2^30 = 1073741824 (十億種可能) 最後要看 A 隊獲勝 > B,C,D 才算獲勝 我是用一個 array list 去存現在結果,目前是 (獲勝) = 10,11,10,11 假設下一場是 A vs B,則結果就會變成 11,11,10,11 (A 獲勝) 10,12,10,11 (B 獲勝) 下下一場假設是 A vs C,因為要根據上一輪的結果去排列組合就會變成四種可能 11,11,10,11 (第一場是 A 獲勝) --> 12,11,10,11 與 11,11,11,11 10,12,10,11 (第一場是 B 獲勝) --> 11,12,10,11 與 10,12,11,11 這樣排列組合就有四種結果 我想問的是,因為比賽還剩 30 場總共有 2^30 這麼多種可能 (應該算大數據計算吧) @@ 一定會 out of memory,有嘗試過加參數 -Xmx4096m 但是一樣會太大 有沒有大大知道要怎麼改良這種算法比較好的? 上網不知道要怎麼查關鍵字... 查詢 game, all result 或其他關鍵字都跑出程式比賽結果 先謝謝知道的大大了 (呃... 不知道有沒有人懂我想問的東西 orz) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.52.214 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1433085100.A.F24.html ※ 編輯: Lavchi (49.215.186.81), 05/31/2015 23:15:49

05/31 23:17, , 1F
你不需要精確到把每種結果都算出來啊....
05/31 23:17, 1F

05/31 23:17, , 2F
你只需要設定好機率 跑很多次 拿平均值就可以了
05/31 23:17, 2F

05/31 23:18, , 3F
或者你有什麼目的非得把「所有可能的未來」都算出來?
05/31 23:18, 3F
簡單說我想列出現在中華職棒四支隊伍打到最後 每一隊獲勝的機率 目前四隊獲勝分別為 (21, 26, 20, 24) 這四種 有想過大約計算 類似 K 大堤的概念,但感覺又不是很精準 總覺得應該有方法可以有效率的精準算出實際每一隊獲勝的可能 至少我的方法是非常沒有效率的算法 orz ※ 編輯: Lavchi (49.215.186.81), 05/31/2015 23:21:35 另外就是有球隊 B 與 C 有和局的狀況發生 所以最後的情況一定要 A 獲勝 > B 才算獲勝,如果最後的獲勝次數是 A = B 則判定 B 獲勝 A 與 C 一樣,因為 C 有和局在身,一定要 A > C 才算獲勝 而 A 與 D 因為都沒有和局在身,所以如果是 A = D 的況狀,則要多加開一局比出勝負 呃... 好像有點複雜 orz ※ 編輯: Lavchi (49.215.186.81), 05/31/2015 23:26:28

05/31 23:35, , 4F
這數據一定會收斂的,而且A跟B打,贏面一定是50:50嗎?
05/31 23:35, 4F

05/31 23:36, , 5F
你的假設其實已經隱含了「ABCD四隊實力相等」的前提了
05/31 23:36, 5F

05/31 23:42, , 6F
是的,我的第一部分是先假設 50/50 去計算結果
05/31 23:42, 6F

05/31 23:42, , 7F
第二部分才打算動態調整,現在 A 勝率 50%,贏一場後下一
05/31 23:42, 7F

05/31 23:42, , 8F
次對戰勝率會變成 51% 之類的去計算更真實的數據
05/31 23:42, 8F


06/01 01:33, , 10F
基本上就是隨機去模擬,跑個十萬次
06/01 01:33, 10F

06/01 01:33, , 11F
Memory不會爆,然後跑愈多次結果愈準
06/01 01:33, 11F

06/01 07:49, , 12F
這叫大數據...? 稱的上大數而已唄
06/01 07:49, 12F

06/01 23:08, , 13F
這是單純的機率問題, 不是big data
06/01 23:08, 13F

06/01 23:13, , 14F
覺得用遞迴做DFS,每次到第30場只留統計值,應該夠用了?
06/01 23:13, 14F

06/02 03:03, , 15F
這只是機率問題吧
06/02 03:03, 15F

06/02 11:01, , 16F
請問你要算什麼東西?
06/02 11:01, 16F

06/02 22:49, , 17F
我也覺得可以簡化成數學問題,用瓊舉法有點不恰當
06/02 22:49, 17F

06/07 12:14, , 18F
大數據應該是要拿這四隊的全部的歷史比賽下去計算才對
06/07 12:14, 18F
文章代碼(AID): #1LQoIiya (java)
文章代碼(AID): #1LQoIiya (java)