python用扑克牌计算24点

这篇具有很好参考价值的文章主要介绍了python用扑克牌计算24点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

7-25 用扑克牌计算24点 (25 分)

一副扑克牌的每张牌表示一个数(J、Q、K 分别表示 11、12、13,两个司令都表示 6)。任取4 张牌,即得到 4 个 1~13 的数,请添加运算符(规定为加+ 减- 乘* 除/ 四种)使之成为一个运算式。每个数只能参与一次运算,4 个数顺序可以任意组合,4 个运算符任意取 3 个且可以重复取。运算遵从一定优先级别,可加括号控制,最终使运算结果为 24。请输出一种解决方案的表达式,用括号表示运算优先。如果没有一种解决方案,则输出 -1 表示无解。

输入格式:

输入在一行中给出 4 个整数,每个整数取值在 [1, 13]。

输出格式:

输出任一种解决方案的表达式,用括号表示运算优先。如果没有解决方案,请输出 -1。

输入样例:

2 3 12 12

输出样例:

((3-2)*12)+12

代码如下

a,b,c,d=map(int,input().split())
list1 = [a, b, c, d]
list2 = []
list3 = []
symbols = ["+", "-", "*", "/"]
class FindException(Exception):
    pass
try:
    for i in range(4):
        one = list1[i]
        list2 = list1[0:i] + list1[i + 1:]
        for j in range(3):
            two = list2[j]
            list3 = list2[0:j] + list2[j + 1:]
            for k in range(2):
                three = list3[k]
                four = (list3[0:k] + list3[k + 1:])[0]
                for s1 in symbols:
                    for s2 in symbols:
                        for s3 in symbols:
                            express = "((one{0}two){1}three){2}four".format(s1, s2, s3)
                            if eval(express) == 24:
                                print("(({0}{1}{2}){3}{4}){5}{6} ".format(one, s1, two, s2, three, s3, four))
                                raise FindException
    print("-1")
except FindException:
    pass
 文章来源地址https://www.toymoban.com/news/detail-401151.html

到了这里,关于python用扑克牌计算24点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java-扑克牌的创建以及发放

    大家好,我是晓星航。今天为大家带来的是 Java-扑克牌的创建以及发放的讲解!😀 这为后续扑克牌的花色以及数字大小创建了类。 这里我们写好了我们扑克牌的基本菜单逻辑,即买牌(52张),再洗牌(打乱牌),最后将所有牌分发给玩游戏的三个人(每人五张)。 这里我们定义了

    2024年02月01日
    浏览(38)
  • 如何用Java实现扑克牌(附源码)

    目录 一.扑克牌的数据结构  二.买牌(扑克牌的初始化) 三.洗牌 四.发牌 五.完整代码 Card.java CardList.java 六.测试 输出结果  首先,扑克牌是一幅一幅的,除去大小王以外一共有 52 张,我们可以考虑用数组来存储,数组的每一个元素都是一张牌,这是牌库的牌;除了要考虑牌库

    2024年02月04日
    浏览(37)
  • 剑指 Offer 61. 扑克牌中的顺子

    剑指 Offer 61. 扑克牌中的顺子 排序,计算0的个数,看其他的数字是不是连续的,不连续的话用0补,如果0的个数不够补了,就无法构成顺子。

    2024年02月11日
    浏览(36)
  • 剑指 Offer ! 61. 扑克牌中的顺子

    参考资料:力扣K神的讲解 剑指 Offer 61. 扑克牌中的顺子 简单 351 相关企业 从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2

    2024年02月13日
    浏览(38)
  • 【数据结构与算法】杨辉三角,相同字符的截取以及扑克牌

    ✨个人主页:bit me ✨当前专栏:数据结构 ✨每日一语:不要等到了你的人生垂暮,才想起俯拾朝花,且行且珍惜。 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: [[1],[1,1

    2024年02月03日
    浏览(43)
  • 【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年02月21日
    浏览(38)
  • 小啊呜产品读书笔记001:《邱岳的产品手记-16》第30讲产品案例分析:Primer的扑克牌交互 & 第31讲 产品分析的套路(下):如何出解决方案?

    叮嘟!这里是小啊呜的产品进阶读书笔记整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! Google 出品的 Primer,让你 5 分钟学市场营销 (1)这种交互方式看起来很像在玩儿扑克牌,所以我们就姑且管它叫 扑克牌交互 ,这其实也是 卡片设计 的一种。

    2024年02月07日
    浏览(48)
  • 深度学习(24): 计算两个图像的LPIPS,SSIM指标 (python代码)

    LPIPS:学习感知图像块相似度(Learned Perceptual Image Patch Similarity, LPIPS)也称为“感知损失”(perceptual loss),用于度量两张图像之间的差别。来源于CVPR2018《The Unreasonable Effectiveness of Deep Features as a Perceptual Metric》 要计算两张图片之间的LPIPS(Learned Perceptual Image Patch Similarity)距离,

    2024年02月15日
    浏览(45)
  • 2023华为od机试 Python 实现【德州扑克】

    本题使用Python解答,如果需要Java代码,请参考:链接 我们可以选择五张牌,它们的范围是:每张牌的大小在2~10之间、或者字母J、Q、K、A,牌花色为红桃、黑桃、梅花、方块四种花色之一。 现在一共有6种牌型: 牌型1,同花顺:同一花色的顺子,如红桃2红桃3红桃4红桃5红桃

    2024年02月13日
    浏览(36)
  • 【算法原理和代码实战】德州扑克计算概率4-2法则原理(基于概率论和统计学的基本原理),详细计算步骤,具体算法代码实例。

    德州扑克计算概率的4-2法则是一种简便的计算方法,用于估算在德州扑克中获得某种牌型的概率。4-2法则的原理是基于概率论和统计学的基本原理,通过观察德州扑克中的牌型组合和可能性,得出一个简单的计算公式。 在德州扑克的前三张公共牌(翻牌圈)之后,如果你需要

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包