BVB Source Codes

Algorithm-Implementations Show fib.py Source code

Return Download Algorithm-Implementations: download fib.py Source code - Download Algorithm-Implementations Source code - Type:.py
  1. # This is a recursive implementation of the fibonacci series.
  2. # This is the most natural representaion of the series
  3. # The recurrence relation is quite simple:
  4. #   f(0) = 0
  5. #   f(1) = 1
  6. #   f(n) = f(n-1) + f(n-2)
  7. # There is no point in trying to implement
  8. # the fibonacci series in a tail-call recursive manner
  9. # since the BDFL has stated multiple times that Python
  10. # will not support tail-call optimisation (and it would
  11. # just over complicate things)
  12. def fib_rec(n):
  13.     if n < 2:
  14.         return n
  15.     else:
  16.         return fib_rec(n-1) + fib_rec(n-2)
  17.  
  18.  
  19. # This implementation is a generator
  20. # You call the function and get the generator back
  21. # For getting values you can loop through the generator,
  22. # just like with any other iterable
  23. def fib():
  24.     a, b = 0, 1
  25.     while True:
  26.         # This next line makes this function a generator
  27.         # Each time the executor reaches this yield stmt
  28.         # it halts execution and gives (yields) the values
  29.         yield a
  30.         # This makes use of Python's tuple
  31.         # unpacking feature, which makes it
  32.         # easy to swap variables (or in this
  33.         # case update them simultaneously)
  34.         # without another temporary variable
  35.         a, b = b, a+b
  36.  
  37. # This function gives you the kth fibonacci
  38. # term. It works just the same as the above
  39. # implementation, with the exception that
  40. # you only get one fibonacci value (the one-th
  41. # you give as an argument)
  42. def kth_fib(k):
  43.     a, b = 0, 1
  44.     while k != 0:
  45.         a, b = b, a+b
  46.         k -= 1
  47.     return a
  48.  
downloadfib.py Source code - Download Algorithm-Implementations Source code
Related Source Codes/Software:
raty - 2017-04-22
RDVTabBarController - Highly customizable tabBar and tabBarController fo... 2017-04-22
material-icon-lib - Library containing over 1500 material vector icons... 2017-04-21
httpdiff - Perform the same request against two HTTP servers ... 2017-04-21
jquerytools - The missing UI library for the Web ... 2017-04-21
mcrouter - Mcrouter is a memcached protocol router for scalin... 2017-04-22
dynomite - A generic dynamo implementation for different k-v ... 2017-04-22
kityminder - Baidu brain figure 2017-04-22
llvm - Mirror of official llvm git repository located at ... 2017-04-22
RBBAnimation - Block-based animations made easy, comes with easin... 2017-04-22
ied - 2017-04-29
Nimble - A Matcher Framework for Swift and Objective-C 2017-04-29
MHVideoPhotoGallery - A Photo and Video Gallery 2017-04-29
shoulda-matchers - Collection of testing matchers extracted from Shou... 2017-04-29
Android-SlideExpandableListView - A better ExpandableListView, with animated expanda... 2017-04-29
AppSales-Mobile - App Sales allows iPhone and Mac App Store develope... 2017-04-29
react-templates - Light weight templates for react ... 2017-04-28
afterglow-theme - A minimal dark Theme for Sublime Text 2 and 3 2017-04-28
jwt-go - Golang implementation of JSON Web Tokens (JWT) 2017-04-28
DeerResume - Tool MarkDown online resume, online preview, edit,... 2017-04-28

 Back to top