From 783ea0d524f8f885c966fad57560a2600b27ed6d Mon Sep 17 00:00:00 2001 From: Cynthia Date: Tue, 28 Mar 2017 14:12:04 -0700 Subject: [PATCH 1/4] Added my answers --- README.md | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c2e235e..b61d673 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,13 @@ def mystery1(n) end ``` -- What is mystery1(5)? -- What is mystery1(10)? -- What is mystery1(0)? +- What is mystery1(5)? + 15 +- What is mystery1(10)? + 55 +- What is mystery1(0)? + infinite recursion - will never reach base-case ### Trace #2 ``` def mystery2(n) @@ -40,9 +43,14 @@ end ``` - What is mystery2(123)? + 6 - What is mystery2(9005)? + 14 - What is mystery2(-123)? + -123 - _Added Fun: How could we make `mystery2(-123)` work the way we might expect it to work instead of the way it does?_ + Depends on if we want -123 to be -1 + 2 + 3 or - (1 + 2 + 3) + Either case we need to add a condition that checks to see if the integer passed is negative - if true, than decided if we should take the absolute value - run the method and at the end make it negative again ### Trace #3 ``` @@ -61,8 +69,11 @@ end ``` - What is mystery3(1)? + 100 - What is mystery3(13)? + 100 - What is mystery3(-6)? + 200 ### Trace #4 ``` @@ -76,8 +87,12 @@ end ``` - What is mystery4(10,2)? + 10^ 2 = 100 - What is mystery4(4,3)? + 4^3 = 64 - What is mystery4(5,0)? + 5^0 = 1 +NOTE: I did trace the recursions and at the end noticed the pattern of b^e :) ### Trace #5 ``` @@ -91,9 +106,14 @@ end ``` - What is mystery5("hi")? + "**" - What is mystery5("")? + "" + - What is mystery5("Hi, there!")? + "**********" (10 - * characters) - _Added Fun: How could we make only alphabetic characters to be changed to stars?_ + Add a condition that checks each value by index. if it's a alpha character, then the values only becomes a * ### Trace #6 ``` @@ -111,6 +131,9 @@ end ``` - What is mystery6("goodnight moon")? + " moon goodnightn" - What is mystery6("Ada Developers Academy")? + " Academy Developers Ada" - What is mystery6("Hi, there!")? + " there! Hi," - _Added Fun: How could we make the reversal happen by letter, instead of by word (i.e. Make it so that mystery6("goodnight moon") returned "noom thgindoog")?_ From f261fcfa669462cc4f3756d23bf8a5f829c7f538 Mon Sep 17 00:00:00 2001 From: Cynthia Date: Tue, 28 Mar 2017 14:12:33 -0700 Subject: [PATCH 2/4] fixed a typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b61d673..34b8d21 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ end ``` - What is mystery6("goodnight moon")? - " moon goodnightn" + " moon goodnight" - What is mystery6("Ada Developers Academy")? " Academy Developers Ada" - What is mystery6("Hi, there!")? From 0842959c6ada3d9b02026b47c2cca5a71fbea58c Mon Sep 17 00:00:00 2001 From: Cynthia Date: Tue, 28 Mar 2017 14:14:54 -0700 Subject: [PATCH 3/4] puts answers on new line --- README.md | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 34b8d21..4fa18c0 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,12 @@ end ``` - What is mystery1(5)? - 15 +- 15 - What is mystery1(10)? - 55 +- 55 - What is mystery1(0)? - infinite recursion - will never reach base-case +- infinite recursion - will never reach base-case ### Trace #2 ``` def mystery2(n) @@ -43,14 +43,13 @@ end ``` - What is mystery2(123)? - 6 +-6 - What is mystery2(9005)? - 14 +- 14 - What is mystery2(-123)? - -123 +- -123 - _Added Fun: How could we make `mystery2(-123)` work the way we might expect it to work instead of the way it does?_ - Depends on if we want -123 to be -1 + 2 + 3 or - (1 + 2 + 3) - Either case we need to add a condition that checks to see if the integer passed is negative - if true, than decided if we should take the absolute value - run the method and at the end make it negative again + - Depends on if we want -123 to be -1 + 2 + 3 or - (1 + 2 + 3). Either case we need to add a condition that checks to see if the integer passed is negative - if true, than decided if we should take the absolute value - run the method and at the end make it negative again ### Trace #3 ``` @@ -69,11 +68,11 @@ end ``` - What is mystery3(1)? - 100 +- 100 - What is mystery3(13)? - 100 +- 100 - What is mystery3(-6)? - 200 +- 200 ### Trace #4 ``` @@ -87,12 +86,12 @@ end ``` - What is mystery4(10,2)? - 10^ 2 = 100 +- 10^ 2 = 100 - What is mystery4(4,3)? - 4^3 = 64 +- 4^3 = 64 - What is mystery4(5,0)? - 5^0 = 1 -NOTE: I did trace the recursions and at the end noticed the pattern of b^e :) +- 5^0 = 1 +- NOTE: I did trace the recursions and at the end noticed the pattern of b^e :) ### Trace #5 ``` @@ -131,9 +130,9 @@ end ``` - What is mystery6("goodnight moon")? - " moon goodnight" +- " moon goodnight" - What is mystery6("Ada Developers Academy")? - " Academy Developers Ada" +- " Academy Developers Ada" - What is mystery6("Hi, there!")? - " there! Hi," +- " there! Hi," - _Added Fun: How could we make the reversal happen by letter, instead of by word (i.e. Make it so that mystery6("goodnight moon") returned "noom thgindoog")?_ From 0e564545d038644c901f0e4ec1cf5dd9abe30511 Mon Sep 17 00:00:00 2001 From: Cynthia Date: Tue, 28 Mar 2017 14:41:35 -0700 Subject: [PATCH 4/4] added definitions for terms --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 4fa18c0..c8ba66e 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,19 @@ Define the following: - Recursion +- When the result of a method dependes on the result of the same method but called with a smaller case. You know you have a recrusive method if the method calls its self - Recursive Case +- The expression of code where the method is calling its self - Base Case +- the expression of code where the recursion stops - Activation Chain/Stack +- A recurive method has to keep track of each instance the method is being called - the function does this with stack that holds each instantiation. - Activation Record/Call +- An activation record is an individual "item" in the activation stack - Infinite Recursion/Stack Overflow/Stack too deep +- When the recrusive method will never reach the base case - it will go one forever/computer will error cause it doesn't have enough memory to keep track of all the times the method has been called. - IE the Activation Stack is too large for the computers memory - Tail Recursion +- normally every recurive call has to complete before the method begins to do work to find the result - in tail recursion the end result is being updated with each new instantiation ## Tracing through a recursive method