1. You are to create a well-formed Python recursive function (i.e, there must be a stopping/base case and the recursive case must present a smaller problem), along with a call to that function. 2. Trace your function and call. Remember that you must keep track of memory for each function call and provide output. How would I trace a function? and keep track of its memory for each function call?

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

1. You are to create a well-formed Python recursive function (i.e, there must be a stopping/base case and the recursive case must present a smaller problem), along with a call to that function.

2. Trace your function and call. Remember that you must keep track of memory for each function call and provide output.

How would I trace a function? and keep track of its memory for each function call?

 

Expert Solution
Step 1

Tracing a function and keep tracking its memory:

  • The below python program computes the sum of natural numbers using recursive function.
  • The value of num is passed to the function "sum".
  • If the num value is 1 or 0, it return the n value to main. It the base case for the program.
  • Now compute the sum of natural number using a recursive call “res=sum+sum(num-1)”.
  • The resource library is used to keep the memory size.
  • Then print the size of memory block and sum of natural numbers.
Step 2

PROGRAM:

#Import module

import resource

 

#Define the function

def sum(num):

 

    #Check if n is either 1 or 0/base case

    if num == 1 or num == 0:

 

        #Return n

        return num

 

    #Update num with recursive function call

    res = num+sum(num-1)

 

    #Keep tracking the memory block size

    print ("Size of allocated memory block := ", resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)

 

    #/Print the sum

    print ("Sum of first %d natural numbers := %d\n" %(num, res))

 

    #Return value

    return res

 

#Call the function

sum(5)

steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Computational Systems
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education