Diff
checker
Texto
Texto
Imagens
Documentos
Excel
Pastas
Legal
Enterprise
Aplicativo para desktop
Preços
Fazer login
Baixar o Diffchecker Desktop
Comparar texto
Encontre a diferença entre dois arquivos de texto
Ferramentas
Histórico
Editor live
Recolher inalteradas
Sem quebra de linha
Layout
Dividido
Unificado
Nível de detalhe
Inteligente
Palavra
Caractere
Realce de sintaxe
Escolher sintaxe
Ignorar
Transformar texto
Ir à primeira mudança
Editar entrada
Diffchecker Desktop
A maneira mais segura de usar o Diffchecker. Obtenha o aplicativo Diffchecker Desktop: seus diffs nunca saem do seu computador!
Obter Desktop
MCS 275 2022 worksheet 7 question 3
Criado
há 4 anos
O diff nunca expira
Limpar
Exportar
Compartilhar
Explicar
9 remoções
Linhas
Total
Removido
Caracteres
Total
Removido
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
34 linhas
Copiar tudo
25 adições
Linhas
Total
Adicionado
Caracteres
Total
Adicionado
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
39 linhas
Copiar tudo
Copiar
Copiado
Copiar
Copiado
def solvemaze
(M,path
=None
):
def solvemaze
_history
(M,path
_list
=None
, solved=False
):
"""
"""
Copiar
Copiado
Copiar
Copiado
Find a solution
to
maze `M`
Functions similarly
to
`solvemaze`, but returns a list of all paths
using a depth-first recursive
considered throughout solving process. Uses additional arg `solved`
search
.
to track whether solution has been found
.
"""
"""
Copiar
Copiado
Copiar
Copiado
print("Called with path={}".format(path))
if path
_list
==None:
if path
==None:
# no path specified, so start
# no path specified, so start
# at M.start
# at M.start
Copiar
Copiado
Copiar
Copiado
path
=
[M.start]
path
_list
=
[
[M.start]
] # Use a list of lists for path_list - one list for each path.
else:
print("Called with path={}".format(path_list[-1]))
path = path_list[-1]
if path[-1]==M.goal:
if path[-1]==M.goal:
# We've found a solution
# We've found a solution
print("SOLVED!")
print("SOLVED!")
Copiar
Copiado
Copiar
Copiado
return path
return path
_list, True # Set the "solved" variable to True
# next steps to consider
# next steps to consider
# (may include retracing our steps)
# (may include retracing our steps)
steps = M.free_neighbors(*path[-1])
steps = M.free_neighbors(*path[-1])
for s in steps:
for s in steps:
if len(path)>=2 and s == path[-2]:
if len(path)>=2 and s == path[-2]:
print("Not considering {}, as it would retrace our steps".format(s))
print("Not considering {}, as it would retrace our steps".format(s))
continue
continue
# Consider whether next step `s` leads to a solution
# Consider whether next step `s` leads to a solution
print("Considering next step {}".format(s))
print("Considering next step {}".format(s))
Copiar
Copiado
Copiar
Copiado
soln
= solvemaze
(M,path
+ [s]
)
next_path = path + [s]
if
soln != None
:
path_list.append(next_path)
soln
, solved
= solvemaze
_history
(M,path
_list
)
if
solved
:
# Some recursive call yielded a solution!
# Some recursive call yielded a solution!
print("Hooray, considering {} worked!".format(s))
print("Hooray, considering {} worked!".format(s))
Copiar
Copiado
Copiar
Copiado
return soln
return soln
, True # # Set the "solved" variable to True
# if we reach this line, step `s` only led to dead ends
# if we reach this line, step `s` only led to dead ends
# if we reach this line, then no continuation of `path`
# if we reach this line, then no continuation of `path`
# leads to a solution, only dead ends.
# leads to a solution, only dead ends.
Copiar
Copiado
Copiar
Copiado
# Still need to return path_list so we can visualize it later
print("Path {} leads only to dead ends".format(path))
print("Path {} leads only to dead ends".format(path))
Copiar
Copiado
Copiar
Copiado
return
None
return
path_list, False # Keep the "solved" variable as False.
Diferenças salvas
Texto original
Abrir arquivo
def solvemaze(M,path=None): """ Find a solution to maze `M` using a depth-first recursive search. """ print("Called with path={}".format(path)) if path==None: # no path specified, so start # at M.start path = [M.start] if path[-1]==M.goal: # We've found a solution print("SOLVED!") return path # next steps to consider # (may include retracing our steps) steps = M.free_neighbors(*path[-1]) for s in steps: if len(path)>=2 and s == path[-2]: print("Not considering {}, as it would retrace our steps".format(s)) continue # Consider whether next step `s` leads to a solution print("Considering next step {}".format(s)) soln = solvemaze(M,path + [s]) if soln != None: # Some recursive call yielded a solution! print("Hooray, considering {} worked!".format(s)) return soln # if we reach this line, step `s` only led to dead ends # if we reach this line, then no continuation of `path` # leads to a solution, only dead ends. print("Path {} leads only to dead ends".format(path)) return None
Texto alterado
Abrir arquivo
def solvemaze_history(M,path_list=None, solved=False): """ Functions similarly to `solvemaze`, but returns a list of all paths considered throughout solving process. Uses additional arg `solved` to track whether solution has been found. """ if path_list==None: # no path specified, so start # at M.start path_list = [[M.start]] # Use a list of lists for path_list - one list for each path. else: print("Called with path={}".format(path_list[-1])) path = path_list[-1] if path[-1]==M.goal: # We've found a solution print("SOLVED!") return path_list, True # Set the "solved" variable to True # next steps to consider # (may include retracing our steps) steps = M.free_neighbors(*path[-1]) for s in steps: if len(path)>=2 and s == path[-2]: print("Not considering {}, as it would retrace our steps".format(s)) continue # Consider whether next step `s` leads to a solution print("Considering next step {}".format(s)) next_path = path + [s] path_list.append(next_path) soln, solved = solvemaze_history(M,path_list) if solved: # Some recursive call yielded a solution! print("Hooray, considering {} worked!".format(s)) return soln, True # # Set the "solved" variable to True # if we reach this line, step `s` only led to dead ends # if we reach this line, then no continuation of `path` # leads to a solution, only dead ends. # Still need to return path_list so we can visualize it later print("Path {} leads only to dead ends".format(path)) return path_list, False # Keep the "solved" variable as False.
Encontrar Diferença