Skip to content

Commit

Permalink
catalan
Browse files Browse the repository at this point in the history
  • Loading branch information
mvilchis committed Oct 26, 2016
1 parent d5609d1 commit 55b0514
Showing 1 changed file with 12 additions and 13 deletions.
25 changes: 12 additions & 13 deletions tarea6/catalan.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,32 @@
def num_catalan(n):
global counter_cat
counter_cat += 1
if n == 1:
if n <= 1:
return 1
if n == 2:
return 2
else:
counter = 0
for i in range(1,n-1):
counter += num_catalan(i)* num_catalan(n-i)
for i in range(n):
counter += num_catalan(i)* num_catalan(n-i-1)
return counter


def num_catalan_mem(n, Matrix):
global counter_cat_mem
counter_cat_mem += 1
if n == 1:
if n <= 1:
return 1
if n == 2:
return 2
else:
counter = 0
for i in range(1,n-1):
for i in range(n):
cat_i = Matrix[i] if Matrix[i] != -1 else num_catalan_mem(i, Matrix)
cat_n_1 = Matrix[n-i] if Matrix[n-i] != -1 else num_catalan_mem(n-i, Matrix)
Matrix[i] = cat_i
cat_n_1 = Matrix[n-i-1] if Matrix[n-i-1] != -1 else num_catalan_mem(n-i-1, Matrix)
Matrix[n-i-1] = cat_n_1
counter += cat_i *cat_n_1
return counter

def main(recursivo = False):
n_max = 200
n_max = 100
if recursivo:
global counter_cat
for n in range(1, n_max):
Expand All @@ -50,13 +48,14 @@ def main(recursivo = False):
Matrix = [-1 for x in range(n+1)]
counter_cat_mem = 0
start = time.time()
num_catalan_mem(n, Matrix)
print "%d %s %d"% (n, time.time() - start, counter_cat_mem)
res = num_catalan_mem(n, Matrix)
print "%d %s %d %d"% (n, time.time() - start, counter_cat_mem, res)

if __name__ == '__main__':
argv = sys.argv[1:]
opts, args = getopt.getopt(argv, "r", ["local="])
if opts: #Si el usuario mando alguna bandera
main(True)
else:
print "CHo"
main(False)

0 comments on commit 55b0514

Please sign in to comment.