From baaf0741547c00cb590fcd6ac1de7f8e99816c19 Mon Sep 17 00:00:00 2001 From: Michael Mutote <130656746+mr1Michael@users.noreply.github.com> Date: Thu, 12 Oct 2023 17:11:59 +0200 Subject: [PATCH] 22202956 Exercise 4.9 question 4 done still requires optimization for space usage and speed. Memoizing might be a good Idea! --- 4_9_Exercises/Question 4.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 4_9_Exercises/Question 4.py diff --git a/4_9_Exercises/Question 4.py b/4_9_Exercises/Question 4.py new file mode 100644 index 0000000..b5a7132 --- /dev/null +++ b/4_9_Exercises/Question 4.py @@ -0,0 +1,29 @@ +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) -- GitLab