From ee4c4ff3015b967e693664105c889bff67e3e311 Mon Sep 17 00:00:00 2001 From: Michael Mutote <130656746+mr1Michael@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:22:10 +0200 Subject: [PATCH] 22202956 Exercise 4.9 question 3 done. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Optimised and removed a lot of un-needed code. Might still need to use Dijkstra’s Algorithm --- 4_9_Exercises/Question 3.py | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/4_9_Exercises/Question 3.py b/4_9_Exercises/Question 3.py index a2bd84b..e406f0d 100644 --- a/4_9_Exercises/Question 3.py +++ b/4_9_Exercises/Question 3.py @@ -1,20 +1,9 @@ -def nsp(x, y, current=(0, 0)): - if current is None: +def nsp(x, y): + if x < 0 or y < 0: return 0 - if current == (x, y): + if (0, 0) == (x, y): return 1 else: - next_corner = new_index(x, y, current) - # uses helper function to find the next corner - return nsp(x, y, next_corner[0]) + nsp(x, y, next_corner[1]) - pass + return nsp(x, y - 1) + nsp(x - 1, y) -def new_index(x, y, current): - # Helper function to find the possible next states, reduced clutter - if current[0] < x and current[1] < y: - return (current[0], current[1] + 1), (current[0] + 1, current[1]) - if current[0] >= x and current[1] < y: - return (current[0], current[1] + 1), None - if current[0] < x and current[1] >= y: - return (current[0] + 1, current[1]), None -- GitLab