Recursive Functions in Python: A Comprehensive Guide with Examples, Schemes and Mind Maps of Computer science

Recursive Functions. Recall factorial function: Iterative Algorithm. Loop construct (while) can capture computation in a set of state variables that.

Typology: Schemes and Mind Maps

2022/2023

Uploaded on 02/28/2023

alpana
alpana 🇺🇸

4.9

(13)

249 documents

1 / 22

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Python: Recursive Functions
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Partial preview of the text

Download Recursive Functions in Python: A Comprehensive Guide with Examples and more Schemes and Mind Maps Computer science in PDF only on Docsity!

Python: Recursive Functions

Recursive Functions

Recall factorial function:

Iterative Algorithm

Loop construct (while)

can capture computation in a

set of state variables that

update on each iteration

through loop

Recursive Functions

Alternatively:

Consider

5! = 5x4x3x2x

can be re-written as 5!=5x4!

In general n! = nx(n-1)!

factorial(n) = n * factorial(n-1)

Recursive Algorithm

function calling itself

Recursive Functions

Recursive Functions

Base case

Recursive step

Recursive Functions

• No computation in first

phase, only function calls

• Deferred/Postponed

computation

– after function calls

terminate, computation

starts

• Sequence of calls have

to be remembered

Execution trace for n = 4 fact (4) 4 * fact (3) 4 * (3 * fact (2)) 4 * (3 * (2 * fact (1))) 4 * (3 * (2 * (1 * fact (0)))) 4 * (3 * (2 * (1 * 1))) 4 * (3 * (2 * 1)) 4 * (3 * 2) 4 * 6 24 Courtesy Prof PR Panda CSE Department IIT Dehi

Another Example (Recursive)

Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and- programming-in-python-fall-2016/lecture-slides-code/

Iterative Algorithm

Recursive

Recursive Functions

• Size of the problem reduces at each step

• The nature of the problem remains the same

• There must be at least one terminating condition

• Simpler, more intuitive

  • For inductively defined computation, recursive algorithm

may be natural

  • close to mathematical specification

• Easy from programing point of view

• May not efficient computation point of view

GCD Algorithm

gcd (a, b) = b if a mod b = 0 gcd (b, a mod b) otherwise gcd (6, 10) gcd (10, 6) gcd (6, 4) gcd (4, 2) 2 2 2 2 Courtesy Prof PR Panda CSE Department IIT Dehi

Fibonacci Numbers

fib (n) = 0 n = 1 1 n = 2 fib (n-1) + fib (n-2) n > 2 Recursive Algorithm Courtesy Prof PR Panda CSE Department IIT Dehi

Power Function

• Write a function power (x,n) to compute the

n

th

power of x

power(x,n) = 1 if n = 0 x * power(x,n-1) otherwise

Power Function

• Efficient power function

  • Fast Power
    • fpower(x,n) = 1 for n = 0
    • fpower(x,n) = x * (fpower(x, n/2)) 2 if n is odd
    • fpower(x,n) = (fpower(x, n/2)) 2 if n is even

Towers of Hanoi Problem

  • 64 gold discs with different

diameters

  • Three poles: (Origin, Spare, Final)
  • Transfer all discs to final pole

from origin

  • one at a time
  • spare can be used to temporarily store discs
  • no disk should be placed on a smaller disk
  • Intial Arrangement:
  • all on origin pole, largest at bottom, next above it, etc. Origin Spare (^) Final Courtesy Prof PR Panda CSE Department IIT Dehi

3-Step Strategy

Origin Spare (^) Final Origin Spare (^) Final Origin Spare (^) Final Origin Spare (^) Final Solve for (n-1) disks. Move to Spare. Use Final as Spare. Move bottom disk to Final Move (n-1) disks to Final. Use Origin as Spare. Courtesy Prof PR Panda CSE Department IIT Dehi