54 lines
995 B
Python
54 lines
995 B
Python
import os
|
|
import math
|
|
import numpy as np
|
|
|
|
|
|
# Given a grid with start in one corner and goal in opposite corner, find
|
|
# the number of paths you can take from start to goal. Do this for a grid
|
|
# of 20 by 20
|
|
|
|
|
|
def gridRoutes(x, y, gs):
|
|
res = 0
|
|
|
|
if gs[x][y] > 0:
|
|
res = gs[x][y]
|
|
|
|
else:
|
|
if y > x:
|
|
h = x
|
|
x = y
|
|
y = h
|
|
if y == 1:
|
|
res = x + 1
|
|
else:
|
|
res = gridRoutes(x - 1, y, gs) + gridRoutes(x, y - 1, gs)
|
|
|
|
gs[x][y] = res
|
|
# print(x, y, res)
|
|
return res
|
|
|
|
|
|
def dumbGridRoutes(x, y):
|
|
if x == 1:
|
|
return y + 1
|
|
elif y == 1:
|
|
return x + 1
|
|
else:
|
|
return dumbGridRoutes(x, y - 1) + dumbGridRoutes(x - 1, y)
|
|
|
|
|
|
def main():
|
|
print("Hello, this is Patrick")
|
|
|
|
gss = [0] * 21
|
|
for i in range(21):
|
|
gss[i] = [0] * 21
|
|
|
|
g = gridRoutes(20, 20, gss)
|
|
# dg = dumbGridRoutes(3, 2)
|
|
print(g)
|
|
# print(gss)
|
|
|
|
if __name__ == "__main__":
|
|
main() |