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:

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):
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
Post a Comment