找回密碼
 立即注册
『海燕策略研究論壇』溫馨提醒您 距离 2026 美 加 墨 世 界 杯 还有
000
:
00
:
00
:
00
吉祥坊吉祥坊KGameKGame
查看: 109|回復: 9

用JAVA自己写一个赢率计算器, 遇到了一些问题, 请高手进!

[複製鏈接]
發表於 2021-6-12 18:22 | 顯示全部樓層 |閱讀模式

註冊論壇會員,發現更多精彩

您需要 登錄 才可以下載或查看,沒有賬號?立即注册

×
最近想自己用java写一个类似pokerstove的赢率计算器, 思路还是穷举法, 数据结构和里面的算法都想好了, 但是遇到了一个问题, 就是算法的效率太慢了.拿最简单的单挑, 一手牌对一手牌, 算赢率, 生成所有公共牌的组合, 也就是生成48取5的组合数, 我用的算法,在我还不错的电脑上跑了几分钟才跑完结果, 所以我想问一下, 关于这方面, 是我穷举法的思路不对, 还是有更优化的算法吗? 我用网上写好的赢率计算器, 在同样的电脑上, 不到一秒就出结果了...

                               
登錄/註冊後可看大圖

海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 18:42 | 顯示全部樓層
建议这么来:一手牌对另一手牌,这样的组合是有限的,不如事先算好保存好,到时候查询一下。这个理论最快
海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 18:44 | 顯示全部樓層
扑克学校出的Equilab计算时也分Enumerate all/Monte Carlo两种模式。但选Enumerate all时很快,Monte Carlo则很慢,估计是界面表达错误。我没能力提供挑战算法的建议,自用的话,建个完整成手牌库是最笨重,又最有效率的方法。数据库结构和索引做得好,查询速度应该可以接受(尤其计算多人局、range vs. range时)。
海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 19:02 | 顯示全部樓層
扑克学校出的Equilab计算时也分Enumerate all/Monte Carlo两种模式。但选Enumerate all时很快,Monte Carlo则很慢,估计是界面表达错误。我没能力提供挑战算法的建议,自用的话,建个完整成手牌库是最笨重,又最有效率的方法。数据库结构和索引做得好,查询速度应该可以接受(尤其计算多人局、range vs. range时)。
海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 19:20 | 顯示全部樓層
网上计算的很快,我认为是两种情况一是Monte Carlo且指定模拟次数较少二是Enumerate all但情况较简单,比如二人单挑,且给出flop,只有45 choose 2 = 990种可能但即使Enumerate all,也不应该太慢,48choose5 也就才170来万种组合,一般的电脑应该秒出结果。为了测试,我让我电脑运行Monte Carlo,也是每秒钟可以计算两三百万个组合。应该是楼主算法有可改进之处。另外穷举法只能用于很简单的情况,稍微一复杂,组合数就爆炸式增长,再快的电脑也得歇菜。比如三人锅,两人有一定的range,另外一个随机牌,计算赢率一个人 top 30%,另一个人top 20%,那么这个大约组合数是1326*0.3 * 1225*0.2 * 1128* 46 choose 5 = 1.5e14150万亿,恐怕得计算一整天才能遍历
海燕策略論壇,迴歸福利不斷
 樓主| 發表於 2021-6-12 19:39 | 顯示全部樓層
感谢大家.觉得网上的计算器也应该是提前算好赢率, 存入数据库, 然后用的时候调出来.应该是存了一手牌对一手牌的赢率, 对于范围的话, 可能就是在一手牌的基础上再进行计算吧.
海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 20:03 | 顯示全部樓層
要求精度不是很高, Monte Carlo算法完全能够满足。
海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 20:14 | 顯示全部樓層
请问那种计算机语言最容易?
海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 20:29 | 顯示全部樓層
snowsnow 发表于 2015-5-30 04:22请问那种计算机语言最容易?我感觉Visual Basic不错,我在计算概率的帖子贴过几个程序。我做苹果手机APP只能用Objective-C。
海燕策略論壇,迴歸福利不斷
發表於 2021-6-12 20:50 | 顯示全部樓層
业余人士最好用 javascript, 连软件都不用装
海燕策略論壇,迴歸福利不斷
您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

關閉

福利推荐上一條 /3 下一條

📢 重要聲明

服務條款

本討論區是以即時上載留言的方式運作,論壇對所有留言的真實性、完整性及立場等,不負任何法律責任。 而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷内容之真實性。 於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資/博彩等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。 論壇有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。 切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。嚴禁直接以名稱公開批評任何機構或人士,或指名道姓地公開批評任何人仕、機構、公司。 嚴禁干擾或破壞本服務或與本服務相連線之伺服器和網路,破壞正常的對話流程、造成螢幕快速移動,或使本服務其他使用者無法打字,或對其他使用者參加即時交流的能力產生負面影響。 本網站保留一切法律權利。

廣告合作

你於本服務或經由本服務與廣告商進行通訊或商業往來,或參與促銷活動,包含相關商品或服務之付款及交付,以及前開交易其他任何相關條款、條件、保證或陳述,完全為你與前開廣告商之間之行為。 前開任何交易或前開廣告商出現於本服務所生之任何性質的損失或損害,你同意論壇不予負責。

📄 請點擊查看免責權聲明及重要事項

文章及附件由海燕策略研究論壇會員製作,以共享創意署名-非商業性-禁止衍生3.0通用版授權條款釋出。
授權條款所屬的司法管轄領域(通用版),上文連接是一份普通人可以理解的法律文本(許可協議全文)的概要。
© 海燕策略研究論壇 All Rights Reserved.

Archiver|手機版|小黑屋|*海燕策略研究論壇*

GMT+8, 2026-2-11 06:25 , Processed in 0.069346 second(s), 19 queries .

*海燕策略研究論壇*

© 2006-2026 All Rights Reserved.