栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python遍历所有可能的24点结果

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python遍历所有可能的24点结果

operator_list = ["+","-","*","/"]
operator_sort = ["((aeb)fc)gd","(aeb)f(cgd)","(ae(bfc))gd","ae((bfc)gd)","ae(bf(cgd))"]

all = set()
def check(item, option,selected):
    if len(selected) == 4:
        item = item.replace("a",selected[0])
        item = item.replace("b",selected[1])
        item = item.replace("c",selected[2])
        item = item.replace("d",selected[3])
        try:
            global all
            result = eval(item)
            rev = f"{item}=24"
            if result == 24 and rev not in all:
                all.add(rev)
                print(rev)
        except Exception:
            # 出现0为除数的情况
            pass
        return
    for i,v in enumerate(option):
        selected.append(v)
        option.remove(v)
        check(item,option,selected)
        selected.pop()
        option.insert(i,v)


def backtrack(options):
    for item in operator_sort:
        for i in operator_list:
            index_e = item.index("e")
            item = item.replace("e",i)
            for j in operator_list:
                index_f = item.index("f")
                item = item.replace("f", j)
                for k in operator_list:
                    index_g = item.index("g")
                    item = item.replace("g", k)

                    option = options
                    select = []
                    check(item, option,select)

                    item_k = list(item)
                    item_k[index_g] = "g"
                    item = "".join(item_k)
                item_j = list(item)
                item_j[index_f] = "f"
                item = "".join(item_j)
            item_i = list(item)
            item_i[index_e] = "e"
            item = "".join(item_i)


opt = ["5","5","5","1"]
# opt = ["20","22","3","15"]

backtrack(opt)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768845.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号