Code Explanation:
1. Function Definition
def count_paths(r, c):
Defines a function named count_paths with two parameters:
r: number of rows
c: number of columns
2. Base Case: When One Dimension is 1
if r == 1 or c == 1:
return 1
If either the number of rows r or the number of columns c is 1:
There is only one path (straight line across the row or down the column).
This condition stops the recursion when we reach the edge of the grid.
3. Recursive Case: Sum of Two Choices
return count_paths(r - 1, c) + count_paths(r, c - 1)
This line calculates the total number of paths by:
Moving down: reduces rows by 1 (count_paths(r - 1, c))
Moving right: reduces columns by 1 (count_paths(r, c - 1))
It adds the number of paths from both possibilities.
4. Function Call and Output
print(count_paths(3, 3))
This calls the function with a 3×3 grid and prints the result.
Step-by-Step Evaluation
Let's walk through the recursion for count_paths(3, 3):
count_paths(3, 3)
= count_paths(2, 3) + count_paths(3, 2)
count_paths(2, 3) = count_paths(1, 3) + count_paths(2, 2) = 1 + 2 = 3
count_paths(3, 2) = count_paths(2, 2) + count_paths(3, 1) = 2 + 1 = 3
So,
count_paths(3, 3) = 3 + 3 = 6
Final Output
6
.png)

0 Comments:
Post a Comment