首页 > 编程语言 > 详细

Python-回溯

时间:2019-09-25 17:31:39      阅读:83      评论:0      收藏:0      [点我收藏+]

回溯
回溯是递归的一种形式。但它涉及选择任何可能性的唯一选择。我们首先选择一个选项并从中退出,如果我们达到了一个状态,那么我们可以得出结论:这个特定的选项不能提供所需的解决方案。我们通过遍历每个可用选项来重复这些步骤,直到获得所需的解决方案。

案例
以下例子是查找给定字母集合的所有可能排列顺序的示例。当我们选择一对时,我们应用回溯来验证是否已经创建了该确切的一对。如果尚未创建,则将该对添加到答案列表中,否则将被忽略。

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
def permute(a, s):
    if a == 1:
        return s
    else:
        return [ y + x
                 for y in permute(1, s)
                 for x in permute(a - 1, s)
                 ]
 
print(permute(1, ["a","b","c"]))
print(permute(2, ["a","b","c"]))


上述代码输出结果为:

[Python] 纯文本查看 复制代码
1
2
[‘a‘, ‘b‘, ‘c‘]
[‘aa‘, ‘ab‘, ‘ac‘, ‘ba‘, ‘bb‘, ‘bc‘, ‘ca‘, ‘cb‘, ‘cc‘]

 

更多技术资讯可关注:gzitcast

Python-回溯

原文:https://www.cnblogs.com/heimaguangzhou/p/11585499.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!