A community for students.

Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

anonymous

  • 5 years ago

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

  • This Question is Closed
  1. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    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?

  2. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    i'm looking at the function but can't figure out what it does

  3. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    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)

  4. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    yes

  5. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    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.

  6. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    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

  7. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    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.

  8. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    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.

  9. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    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)]

  10. anonymous
    • 5 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Exactly. Well done.

  11. Not the answer you are looking for?
    Search for more explanations.

    • Attachments:

Ask your own question

Sign Up
Find more explanations on OpenStudy
Privacy Policy

Your question is ready. Sign up for free to start getting answers.

spraguer (Moderator)
5 → View Detailed Profile

is replying to Can someone tell me what button the professor is hitting...

23

  • Teamwork 19 Teammate
  • Problem Solving 19 Hero
  • You have blocked this person.
  • ✔ You're a fan Checking fan status...

Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.

This is the testimonial you wrote.
You haven't written a testimonial for Owlfred.