智游城

标题: 如何计算HANDUP胜率表,请计算机软件高手参与 [打印本页]

作者: 老陈    时间: 2012-7-6 19:03
标题: 如何计算HANDUP胜率表,请计算机软件高手参与
本帖最后由 老陈 于 2012-7-6 05:03 编辑

我计划计算HANDUP胜率表,即每一种牌的组合对其它牌的组合,算尽所有的公共牌的组合。
计算复杂程度如下:
甲1326种组合
乙1225种组合
公共牌组合1,712,304
比较赢、和、输的次数

计算一个组合如:
AQ vs JJ
这部分我已经编完,大约需4.2秒(用我的计算机)
如何减少计算量,请高手参与



作者: Jsli    时间: 2012-7-6 19:56
老陈的帖子
看不懂也顶
作者: dengxianqi    时间: 2012-7-6 20:03
这不是pokerstove吗?
作者: angest    时间: 2012-7-6 21:30
用蒙特卡洛算法取近似值,误差极小
作者: 老陈    时间: 2012-7-6 21:52
本帖最后由 老陈 于 2012-7-6 08:50 编辑
angest 发表于 2012-7-6 07:30
用蒙特卡洛算法取近似值,误差极小


我不想计算近似值,想计算精确值。用最笨的算法大约需要79天,用对称性就可以减少一半,肯定还有其它减少计算量的方法,暂时还没想出来。

比如 AK vs Q9  和 AK vs Q9 计算结果是一样的,问题是怎么来描述和实现。

作者: Howard    时间: 2012-7-7 00:04
老陈这个算法我非常感兴趣,我给自己定的一个目标,就是go pro后开发出一套完善的计算概率的软件,要站在pokerstove,pokercruncher,ICM,flopzilla等巨人的肩膀上。

还没有多想过,现在只能给出一些简单的思路,不是算法性能的改变,而是投机取巧,计算机专业的老陈见笑

1. 翻前任意两手牌的对决,无deadcard的情况,可以固定写在软件里,因为这个使用频率极高。比如,任意一个对手不是一手牌而是range,则可省去大量时间

2. AKo vs Q9o的问题,可以设置一个 “花色等效性” 的函数:
    输入: 当然就是两手牌,
    处理: 甲高牌花色 vs 乙高牌花色 一致为1,不一致为0; 甲低牌花色 vs 乙高牌花色 。。。。   这样,结果就是一个4位的二进制数(十进制的1~16)
    输出:此4位的二进制数

    两次对决中,先用其他函数保证这两手牌的rangk是一致的,比如 第一次AhKd vs Qd9s  第二次AdKh vs Qs9c,然后调用此函数,看输出是否一致,一致则等效。
作者: 老陈    时间: 2012-7-7 03:43
Howard 发表于 2012-7-6 10:04
老陈这个算法我非常感兴趣,我给自己定的一个目标,就是go pro后开发出一套完善的计算概率的软件,要站在po ...

受到极大启发,非常感谢,我将尽快测试一下这种方法,如能成功,计算量将减少到原来的1/16。太棒了。
作者: 老陈    时间: 2012-7-7 13:03
Howard 发表于 2012-7-6 10:04
老陈这个算法我非常感兴趣,我给自己定的一个目标,就是go pro后开发出一套完善的计算概率的软件,要站在po ...

思路完全正确,并且实现起来容易。现在程序代码已经写完,正在运行,和预期的差不多,大概需要38个小时完成全部计算。对老霍的思维敏捷程度,我是佩服得五体投地。
作者: 西红柿    时间: 2012-7-7 14:36
数学菜鸟,飘过!只求分享成功果实~
作者: 老陈    时间: 2012-7-8 05:13
本帖最后由 老陈 于 2012-7-7 15:16 编辑
Howard 发表于 2012-7-6 10:04
老陈这个算法我非常感兴趣,我给自己定的一个目标,就是go pro后开发出一套完善的计算概率的软件,要站在po ...


我使用6个二进制数,还要包括甲高 vs 甲低、乙高 vs 乙低,否则AK vs QQ 和AK vs QQ输出相同,这显然是错的。
作者: Howard    时间: 2012-7-8 15:59
老陈 发表于 2012-7-8 05:13
我使用6个二进制数,还要包括甲高 vs 甲低、乙高 vs 乙低,否则AK vs QQ 和AK vs Q ...

有道理! 这就严谨了,老陈还是老道。 这样其实相同的情况也不算多,要6个二进制数都一致才可以。
作者: 老陈    时间: 2012-7-8 16:27
本帖最后由 老陈 于 2012-7-8 02:53 编辑
Howard 发表于 2012-7-8 01:59
有道理! 这就严谨了,老陈还是老道。 这样其实相同的情况也不算多,要6个二进制数都一致才可以。 ...


其实计算量差不多,四张牌所有花色组合(带顺序)256种,实际上只有14种

刚才我太太上车就要走,最后一句改一下

归类后只有14类,就是0-63这64个数字,只有14个在计算中出现。

作者: giggsye    时间: 2012-7-8 23:44
进来膜拜一下




欢迎光临 智游城 (http://zhiyoucheng.co/) Powered by Discuz! X3.2