如何解决使用回溯的 Knights Tour 问题:代码不生成任何输出
def isSafe(arr,i,j,visited,n):
if(i<0 or j<0 or i>=n or j>=n or visited[i][j]==True):
return False
return True
def display(arr,n):
for i in range(n):
for j in range(n):
print(arr[i][j],end="")
print()
开始骑士之旅的功能: 我使用计步器从 0 到 n²-1 计算骑士的步数。
基本情况触发显示。
我用计步器初始化数组,然后检查下一个单元格是否安全。
def knightsT(arr,n,c,visited):
if c==((n*n)-1): #Base Case
arr[i][j]=c
display(arr,n)
if c>=n*n:
return
arr[i][j]=c
visited[i][j]=True
iDir=[1,1,-1,2,-2,-2]
jdir=[2,-1]
for k in range(0,8,1):
if isSafe(arr,i+iDir[k],j+iDir[k],n):
knightsT(arr,c+1,visited)
arr[i][j]==0. #Backtracking
visited[i][j]=False #Backtracking
Python 的主要功能
l=[[0]*5 for i in range(5)]
visited=[[False]*5 for i in range(5)]
n=len(l)
knightsT(l,visited)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。