Friday, June 5, 2015

Python: recursion (1)



Abstract: learn recursion by computing factorial.


Three key points using iterative method:
The start point,
The end point,
The condition for recursion
Here is the script:
# -*- coding: utf-8 -*-
"""
Created on Wed Jun  3 16:33:44 2015

@author: yuan
"""

class incrusive_examples():
    def __init__(self):
        pass
       
    def factorial(self, number):
        print number
        if number==1: #endpoint
            return 1
        else:
            return self.factorial(number-1)*number #incrusion conditon
           
    #tail call optimization
    def tail_call(self, number, product):
        print number
        if number==1:
            return product
        else:
            return self.tail_call(number-1, product*number)

    def factorial_2(self, number):
        return self.tail_call(number, 1) #startpoint and endpoint
   

   
#main programming


#
incru=incrusive_examples()

#computer factorial of 10: 10!
#common programming
print incru.factorial(10)

#tail incrusion
print incru.factorial_2(10)

#end

No comments:

Post a Comment