How to write the Fibonacci Sequence in Python -


i had coded program wrongly. instead of returning fibonacci numbers between range (ie. startnumber 1, endnumber 20 should = numbers between 1 & 20), have written program display fibonacci numbers between range (ie. startnumber 1, endnumber 20 displays = first 20 fibonacci numbers). thought had sure-fire code. not see why happening.

startnumber = int(raw_input("enter start number here ")) endnumber = int(raw_input("enter end number here "))  def fib(n):     if n < 2:         return n     return fib(n-2) + fib(n-1)  print map(fib, range(startnumber, endnumber)) 

someone pointed out in part ii (which closed being duplicate - https://stackoverflow.com/questions/504193/how-to-write-the-fibonacci-sequence-in-python-part-ii) need pass startnumber , endnumber through generator using while loop. can please point me in direction on how this? welcome.


i'm learning programmer , i've run bit of jumble. asked write program compute , display fibonacci's sequence user inputted start number , end number (ie. startnumber = 20 endnumber = 100 , display numbers between range). trick use inclusively (which not know how in python? - i'm assuming means use inclusive range?).

what have far no actual coding rather:

  • write fib sequence formula infinite
  • display startnumber endnumber fib sequence.

i have no idea start , asking ideas or insight how write this. have tried write fib sequence forumla lost on well.

there lots of information fibonacci sequence on wikipedia , on wolfram. lot more may need. anyway thing learn how use these resources find (quickly if possible) need.

write fib sequence formula infinite

in math, it's given in recursive form:

fibonacci wikipedia

in programming, infinite doesn't exist. can use recursive form translating math form directly in language, example in python becomes:

def f(n):     if n == 0: return 0     elif n == 1: return 1     else: return f(n-1)+f(n-2) 

try in favourite language , see form requires a lot of time n gets bigger. in fact, o(2n) in time.

go on on sites linked , see (on wolfram):

fibonacci equation

this 1 pretty easy implement , very, fast compute, in python:

from math import sqrt def f(n):     return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)) 

an other way following definition (from wikipedia):

the first number of sequence 0, second number 1, , each subsequent number equal sum of previous 2 numbers of sequence itself, yielding sequence 0, 1, 1, 2, 3, 5, 8, etc.

if language supports iterators may like:

def f():     a,b = 0,1     while true:         yield         a, b = b, + b 

display startnumber endnumber fib sequence.

once know how generate fibonacci numbers have cycle trough numbers , check if verify given conditions.

suppose wrote f(n) returns n-th term of fibonacci sequence (like 1 sqrt(5) )

in languages can like:

def subfib(startnumber, endnumber):     n = 0     cur = f(n)     while cur <= endnumber:         if startnumber <= cur:             print cur         n += 1         cur = f(n) 

in python i'd use iterator form , go for:

def subfib(startnumber, endnumber):     cur in f():         if cur > endnumber: return         if cur >= startnumber:             yield cur  in subfib(10, 200):     print 

my hint learn read need. project euler (google it) train :p luck , have fun!


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -