def queens(num=8, state=()): # 生成器函数 for pos in range(num): if not conflict(state, pos): # 到达最后一行时返回(pos,) if len(state) == num - 1: yield (pos,) # 只有一个元素的元组 else: for result in queens(num, state + (pos,)): # result 在返回的生成器中迭代 yield (pos,) + result
这个是如何实现回溯算法的,比如说到了( 0.2.4.1.3 )之后发现没有位置可以放,怎么退回到上一步变成( 0.2.4.1.7 )
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.