Skip to content
Snippets Groups Projects
Commit baaf0741 authored by Michael Mutote's avatar Michael Mutote
Browse files

22202956

Exercise 4.9 question 4 done

still requires optimization for space usage and speed. Memoizing might be a good Idea!
parent ee4c4ff3
No related branches found
No related tags found
No related merge requests found
def np(x, y, trace=None):
if trace is None:
trace = [(0, 0)]
current = trace[-1]
if current in trace[:-1]:
return 0
if current[0] > x or current[1] > y or current[0] < 0 or current[1] < 0:
return 0
if (current[0], current[1]) == (x, y) and len(trace) > 1:
print(current[0], x, current[1], y, " this is in success")
print(trace)
return 1
if x + y < 2:
return 1
x_1, y_1 = (current[0], current[1] + 1) if current[1] < y else (current[0], current[1])
x_2, y_2 = (current[0] + 1, current[1]) if current[0] < x else (current[0], current[1])
x_3, y_3 = current[0] - 1, current[1]
x_4, y_4 = current[0], current[1] - 1
trace_1 = trace + [(x_1, y_1)]
trace_2 = trace + [(x_2, y_2)]
trace_3 = trace + [(x_3, y_3)]
trace_4 = trace + [(x_4, y_4)]
return np(x, y, trace_1) + \
np(x, y, trace_2) + \
np(x, y, trace_3) + \
np(x, y, trace_4)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment