MIT 6.00 Intro Computer Science (OCW) 16 Online OpenStudy (anonymous):

hi, i understand how fibonacci number works but i don't understand the coding part of it. can someone please explain it to me? OpenStudy (anonymous):

Do you mean you need help with how to build the function, or you're looking at the function on a handout and you need help figuring out what it does? OpenStudy (anonymous):

i'm looking at the function but can't figure out what it does OpenStudy (anonymous):

This one? def fib(x): """Return fibonacci of x, where x is a non-negative int""" if x == 0 or x == 1: return 1 else: return fib(x-1) + fib(x-2) OpenStudy (anonymous):

yes OpenStudy (anonymous):

well, the first part is easy. the line: if x == 0 or x == 1: return 1 checks to see if x is 0 or 1 if x isn't 0 or 1, the next line returns fib(x-1) + fib(x-2) fib(x-1) is going to go through the same process. If (x-1) is greater than 1, THAT will also get sent to fib. But eventually fib(x-1) will return an integer. When it does, the program will start to evaluate fib(x-2) the same way. when fib(x-2) returns an integer, the problem becomes simple addition. OpenStudy (anonymous):

when you say "If (x-1) is greater than 1, THAT will also get sent to fib" does that mean the function will go through fib(x-1) then fib((x-1)-1 then fib(((x-1)-1)-1) and so on also when will fib(x-1) return an integer? i thought fib(x-1) will always be an integer OpenStudy (anonymous):

when you say "If (x-1) is greater than 1, THAT will also get sent to fib" does that mean the function will go through fib(x-1) then fib((x-1)-1 then fib(((x-1)-1)-1) and so on Exactly, UNTIL one of those (x-an accumulating number of ones) terms is in the base case, that is, when the line that says if x == 0 or x == 1: return 1 is true, the function will stop calling fib(x-whatever) and will just return 1 also when will fib(x-1) return an integer? i thought fib(x-1) will always be an integer Instead of fib(x-1) think of it as 'the integer that gets returned when fib(x-1) is finished being evaluated' So it is an integer, but it takes some time (the time to evauate fib(x-1)) to figutre out what the integer is. OpenStudy (anonymous):

One way to see this is to consider x = 2. Since x is not 1, the function computes fib(1) + fib(0). But those two values are known to be 1, so the answer is 1+1 = 2. Now consider x = 3. Since x is not 1, the function computes fib(2) + fib(1). fib(2) expands to fib(1) + fib(0), so the answer is 1+1+1 = 3. And so on. OpenStudy (anonymous):

thanks! i think i got so lets say x = 4 fib(4) = fib(3) + fib(2) = [fib(2) + fib(1)] + [fib(1) + fib(0)] =[fib(1) + fib(0) + fib(1)] + [fib(1) + fib(0)] OpenStudy (anonymous):

Exactly. Well done.

Latest Questions hdgfudf: Mrs. Gomez is sewing a dress for each of her four daughters. Each dress uses yards of fabric, and the fabric costs per yard.
2 hours ago 0 Replies 0 Medals D3AD4YOU: RATE MY SINGiNG https://voca.ro/1aSj88jvIk2x
3 hours ago 55 Replies 1 Medal bethknee: A scientist finds two similar flies that have the same size, coloration, and overall morphology.
3 hours ago 1 Reply 0 Medals pennalopee: So I slit my wrists What do you care.? So I'm ruining my life I'm not in your hair.
6 hours ago 0 Replies 0 Medals pennalopee: Sorry for making you mad Sorry for everything I said.. Sorry for even lying to you Sorry, I'm so sorry Sorry if I disappointed you Sorry I hurt you Sorry fo
6 hours ago 58 Replies 2 Medals Tbone: What is love? Why does this have to hurt? Can't I just be left alone to die without you running back into my life with the knifes? Why is it always this cat
5 hours ago 7 Replies 3 Medals daddylala: looking for a relationship
7 hours ago 40 Replies 2 Medals Trappp: Rate ma eye color
3 hours ago 31 Replies 2 Medals KyledaGreat: What if Will Smith slapped Mike Tyson instead of Chris Rock at the Oscaru2019s ?
3 hours ago 4 Replies 2 Medals Vixen: NEED HELP ASAP
14 hours ago 7 Replies 2 Medals