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

子集和问题解法(回溯算法的python代码)

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

子集和问题解法(回溯算法的python代码)

子集和问题解法(回溯算法的python代码)

def SubSeriesSum(start, series, target):
    global s #定义全局变量在递归中重复使用
    if start >= len(series):
        if s == target: #满足要求后输出子集
            print("subseries:", end=" ")
            for i in x:
                if i != 0:
                    print(i, end=" ")
            print("n")
            return

    else: #深度优先策略
        s += series[start] 
        x[start] = series[start] #无论选用与否先放如X[]中
        SubSeriesSum(start + 1, series, target)
        s -= series[start]
        x[start] = 0 #剔除错误选项
        SubSeriesSum(start + 1, series, target)


if __name__ == '__main__':
    s = 0   #求子集的总和
    series = [2, 5, 6, 8] #所求的目标序列
    x = [0 for i in range(len(series))] #定义子集列表
    target = 10 #定义子集所求的目标
    SubSeriesSum(0, series, target)

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

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

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