计算6+德州扑克各个牌型的概率

为了回答该知乎问题https://www.zhihu.com/question/57408133/answer/152920354)而写就的程序。

6+德州扑克的规则,就是在传统52张牌德州扑克的基础上,去掉了2到5,只留下6到A共计36张牌;另外最小的顺子就成了A6789。此外,牌型大小变成了:同花>葫芦>三条>顺子。其他规则都不变。

新的概率表(根据本程序跑出的结果)变为:


Chrome浏览器按F12打开控制台,把下面代码贴进去,回车,等待几十秒,即可出结果。欢迎大牛来做代码正确性审核。

function isPair(cards) {
    for (var i = 0; i < cards.length - 1; i++) {
        if (cards[i][0] == cards[i + 1][0]) return true;
    }
    return false;
}

function isTwoPair(cards) {
    var hasPair = false;
    for (var i = 0; i < cards.length - 1; i++) {
        if (cards[i][0] == cards[i + 1][0]) {
            if (hasPair) return true;
            i++;
            hasPair = true;
        }
    }
    return false;
}

function isSet(cards) {
    for (var i = 0; i < cards.length - 2; i++) {
        if (cards[i][0] == cards[i + 1][0] && cards[i][0] == cards[i + 2][0]) return true;
    }
    return false;
}

function isFourOfAKind(cards) {
    for (var i = 0; i < cards.length - 3; i++) {
        if (cards[i][0] == 
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
简介一年多以前,Android平台曾经出现过三个流行的TI计算器模拟器软件,分别包括TI-83、TI-85、TI-86,让许多用户大为欣喜,不过因为这些软件采用了一键安装模式导致侵犯了德州仪器的版权问题,最终这些软件被迫下架。 现在TI-89计算器又出现在Android平台,这次为了避免重蹈覆辙,开发者采用了模拟机的方式,仅提供一个模拟器,用户需要自行下载德州仪器给出的计算器ROM用来给软件加载。 虽然现在这款模拟器还处于测试阶段,但是已经可以正常使用,而且是Android平台上出现的第一个可用的TI-89计算器工具更新内容: - 优化变焦模式 - 增加振动器开/关 - 性能改进 - 改善应用程序的链接 安装说明:下载主程序和rom文件,解压zip格式的rom文件,再把解压后的文件放到SD卡任意目录,安装主程序,打开主程序并按菜单键,选择Load ROM,点击刚放到SD卡的rom文件,重新运行程序即可! 。可以成功模拟五种计算器: TI89,TI89Titanium,TI92,TI92plus,Voyage200。 安装使用方法步骤: 1:把rom包解压到sd卡根目录(TI89Titanium_OS.89u为解压后的rom包)。 2:安装TI89主程序,点击菜单点击ROM Manager(看截图1)。 3:点击Add Rom(看截图2)。 4:点击Browse(看截图3)。 5:向下滑动找到刚才解压后的rom包TI89Titanium_OS.89u,点击它(看截图4)。 6:点击Select Type,再滑动选择TI89或TI92或其它三个(TI83和84系列不可用,可能比较落后,模拟器不支持,建议用TI89和TI92或Voyage200系列)(看截图5)。 注意:关闭软件方法,按住2nd键不放,再按ON键,然后放开手指即可退出软件
德州扑克6人桌游戏中,实时计算获胜概率需要考虑当前手牌组合、公共牌和剩余牌堆的情况。以下是一个R代码示例,用于计算实时获胜概率: ```R # 定义扑克牌 suits <- c("hearts", "diamonds", "clubs", "spades") values <- c("A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2") cards <- expand.grid(value=values, suit=suits) # 定义一副牌 deck <- paste(cards$value, "of", cards$suit) # 定义手牌和公共牌 my_hand <- c("As", "Ks") board <- c("2h", "5h", "9c") # 定义函数计算获胜概率 calculate_win_rate <- function(my_hand, board, deck) { # 生成所有可能的对手手牌组合 remaining_cards <- setdiff(deck, c(my_hand, board)) n_remaining_cards <- length(remaining_cards) opponent_hands <- combn(remaining_cards, 2) # 计算每种对手手牌组合的胜率 wins <- 0 total <- ncol(opponent_hands) for (i in 1:total) { opponent_hand <- opponent_hands[,i] all_cards <- c(my_hand, board, opponent_hand) player_score <- PokerHand::score_hand(my_hand, board) opponent_score <- PokerHand::score_hand(opponent_hand, board) if (player_score > opponent_score) { wins <- wins + 1 } } # 计算获胜概率 win_rate <- wins / total # 返回获胜概率 return(win_rate) } # 计算实时获胜概率 win_rate <- calculate_win_rate(my_hand, board, deck) # 输出结果 print(paste("实时获胜概率:", round(win_rate * 100, 2), "%")) ``` 这段代码用到了PokerHand包来计算牌型得分。输出结果将显示当前手牌组合和公共牌的实时获胜概率。注意,实时获胜概率只是一种参考,实际应用中需要考虑更多因素,如对手的行为模式和策略等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值