From 610eb1c6212732eb69369c7e160a135eb143003d Mon Sep 17 00:00:00 2001 From: pythonandme Date: Sun, 12 Oct 2014 14:35:57 -0700 Subject: [PATCH] Danielle_Marcos My first commit in GitHub. Adding 2 files for session2 homework. --- Students/Danielle_Marcos/session02/ack.py | 40 +++++++++++ Students/Danielle_Marcos/session02/series.py | 74 ++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 Students/Danielle_Marcos/session02/ack.py create mode 100644 Students/Danielle_Marcos/session02/series.py diff --git a/Students/Danielle_Marcos/session02/ack.py b/Students/Danielle_Marcos/session02/ack.py new file mode 100644 index 00000000..91a0ede4 --- /dev/null +++ b/Students/Danielle_Marcos/session02/ack.py @@ -0,0 +1,40 @@ +def ack (m, n): + """Return a value based on the Ackermann-Peter function.""" + + if m == 0: + return n + 1 + elif m > 0 and n == 0: + return ack(m-1, 1) + elif m > 0 and n > 0: + return ack(m-1, ack(m, n-1)) + elif m < 0 and n < 0: + return None + +if __name__ == "__main__": + + assert ack(0,0) == 1 + assert ack(0,1) == 2 + assert ack(0,2) == 3 + assert ack(0,3) == 4 + assert ack(0,4) == 5 + + assert ack(1,0) == 2 + assert ack(1,1) == 3 + assert ack(1,2) == 4 + assert ack(1,3) == 5 + assert ack(1,4) == 6 + + assert ack(2,0) == 3 + assert ack(2,1) == 5 + assert ack(2,2) == 7 + assert ack(2,3) == 9 + assert ack(2,4) == 11 + + assert ack(3,0) == 5 + assert ack(3,1) == 13 + assert ack(3,2) == 29 + assert ack(3,3) == 61 + assert ack(3,4) == 125 + + print"" + print "All Tests Pass" \ No newline at end of file diff --git a/Students/Danielle_Marcos/session02/series.py b/Students/Danielle_Marcos/session02/series.py new file mode 100644 index 00000000..070ba84c --- /dev/null +++ b/Students/Danielle_Marcos/session02/series.py @@ -0,0 +1,74 @@ +def fibonacci(n): + """Return the n value based on the Fibonacci series.""" + if n <= 0: + return 0 + elif n == 1: + return 1 + else: + return fibonacci(n-1) + fibonacci(n-2) + +def lucas(n): + """Return the n value in the Lucas Numbers.""" + if n <= 0: + return 2 + elif n == 1: + return 1 + else: + return lucas(n-1) + lucas(n-2) + +def sum_series(n, x=0, y=1): + if n <= 0: + return x + elif n == 1: + return y + else: + return sum_series(n-1, x, y) + sum_series(n-2, x, y) + +if __name__ == "__main__": + """Validate that when an nth values are passed different positions are returned""" + +# Validate Fibonacci tests pass successfully. + assert fibonacci(0) == 0 + assert fibonacci(1) == 1 + assert fibonacci(2) == 1 + assert fibonacci(3) == 2 + assert fibonacci(4) == 3 + assert fibonacci(5) == 5 + assert fibonacci(6) == 8 + assert fibonacci(7) == 13 + +# Validate Lucas tests pass successfully. + + assert lucas(0) == 2 + assert lucas(1) == 1 + assert lucas(2) == 3 + assert lucas(3) == 4 + assert lucas(4) == 7 + assert lucas(5) == 11 + assert lucas(6) == 18 + assert lucas(7) == 29 + +# Validate sum_series tests for Fibonacci pass successfully. + + assert sum_series(0) == 0 + assert sum_series(1) == 1 + assert sum_series(2) == 1 + assert sum_series(3) == 2 + assert sum_series(4) == 3 + assert sum_series(5) == 5 + assert sum_series(6) == 8 + assert sum_series(7) == 13 + +# Validate sum_series tests for Lucas pass successfully. + + assert sum_series(0) == 0 + assert sum_series(1) == 1 + assert sum_series(2) == 1 + assert sum_series(3) == 2 + assert sum_series(4) == 3 + assert sum_series(5) == 5 + assert sum_series(6) == 8 + assert sum_series(7) == 13 + + print "" + print "All Tests Pass" \ No newline at end of file