作者Lavchi (拉维奇)
看板java
标题[问题] 所有比赛结果(大数据)
时间Sun May 31 23:11:35 2015
因为有在看棒球 想写一支小小程式看一下比赛结果
规则是这样,目前有 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://webptt.com/cn.aspx?n=bbs/java/M.1433085100.A.F24.html
※ 编辑: Lavchi (49.215.186.81), 05/31/2015 23:15:49
1F:→ Killercat: 你不需要精确到把每种结果都算出来啊.... 05/31 23:17
2F:→ Killercat: 你只需要设定好机率 跑很多次 拿平均值就可以了 05/31 23:17
3F:→ Killercat: 或者你有什麽目的非得把「所有可能的未来」都算出来? 05/31 23:18
简单说我想列出现在中华职棒四支队伍打到最後 每一队获胜的机率
目前四队获胜分别为 (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
4F:→ Killercat: 这数据一定会收敛的,而且A跟B打,赢面一定是50:50吗? 05/31 23:35
5F:→ Killercat: 你的假设其实已经隐含了「ABCD四队实力相等」的前提了 05/31 23:36
6F:→ Lavchi: 是的,我的第一部分是先假设 50/50 去计算结果 05/31 23:42
7F:→ Lavchi: 第二部分才打算动态调整,现在 A 胜率 50%,赢一场後下一 05/31 23:42
8F:→ Lavchi: 次对战胜率会变成 51% 之类的去计算更真实的数据 05/31 23:42
10F:→ chucheng: 基本上就是随机去模拟,跑个十万次 06/01 01:33
11F:→ chucheng: Memory不会爆,然後跑愈多次结果愈准 06/01 01:33
12F:推 ScottOAO: 这叫大数据...? 称的上大数而已呗 06/01 07:49
13F:→ NewSpec: 这是单纯的机率问题, 不是big data 06/01 23:08
14F:推 AI3767: 觉得用递回做DFS,每次到第30场只留统计值,应该够用了? 06/01 23:13
15F:→ kattte: 这只是机率问题吧 06/02 03:03
16F:推 LaPass: 请问你要算什麽东西? 06/02 11:01
17F:推 cyclone350: 我也觉得可以简化成数学问题,用琼举法有点不恰当 06/02 22:49
18F:推 k47100014: 大数据应该是要拿这四队的全部的历史比赛下去计算才对 06/07 12:14