EBK STARTING OUT WITH PYTHON
3rd Edition
ISBN: 9780100794351
Author: GADDIS
Publisher: YUZU
expand_more
expand_more
format_list_bulleted
Concept explainers
Textbook Question
Chapter 12, Problem 2SA
In this chapter, the rules given for calculating the factorial of a number are as follows:
If n = 0 then factorial (n) = 1
If n . 0 then factorial (n) = n × factorial (n - 1)
If you were designing a function from these rules, what would the base case be? What would the recursive case be?
Expert Solution & Answer
Trending nowThis is a popular solution!
Students have asked these similar questions
In this chapter, the rules given for calculating the factorial of a number are as follows:If n = 0 then factorial(n) = 1If n . 0 then factorial(n) = n × factorial(n – 1)If you were designing a function from these rules, what would the base case be? What wouldthe recursive case be?
8. Ackerman's Function
Ackermann's Function is a recursive mathematical algorithm that can be used to test how well a system optimizes its performance of recursion. Design a function ackermann(m, n), which solves Ackermann's function. Use the following logic in your function:
If m = 0 then return n + 1
If n = 0 then return ackermann(m-1,1)
Otherwise, return ackermann(m-1,ackermann(m,n-1))
Once you've designed yyour function, test it by calling it with small values for m and n.
Use Python.
Write the definition of a recursive function
int simpleSqrt(int n)
The function returns the integer square root of n, meaning the biggest integer whose square is less than or equal to n. You may
assume that the function is always called with a nonnegative value for n.
Use the following algorithm:
If n is 0 then return 0.
Otherwise, call the function recursively with n-1 as the argument to get a number t. Check whether or not t+1 squared is strictly
greater than n. Based on that test, return the correct result.
For example, a call to simpleSqrt(8) would recursively call simpleSqrt(7) and get back 2 as the answer. Then we would square (2+1)
= 3 to get 9. Since 9 is bigger than 8, we know that 3 is too big, so return 2 in this case.
On the other hand a call to simpleSqrt(9) would recursively call simpleSqrt(8) and get back 2 as the answer. Again we would square
(2+1) = 3 to get back 9. So 3 is the correct return value in this case.
Chapter 12 Solutions
EBK STARTING OUT WITH PYTHON
Ch. 12.2 - It is said that a recursive algorithm has more...Ch. 12.2 - Prob. 2CPCh. 12.2 - What is a recursive case?Ch. 12.2 - What causes a recursive algorithm to stop calling...Ch. 12.2 - What is direct recursion? What is indirect...Ch. 12 - Prob. 1MCCh. 12 - A function is called once from a program's main...Ch. 12 - Prob. 3MCCh. 12 - Prob. 4MCCh. 12 - Prob. 5MC
Ch. 12 - Prob. 6MCCh. 12 - Any problem that can be solved recursively can...Ch. 12 - Actions taken by the computer when a function is...Ch. 12 - A recursive algorithm must _______ in the...Ch. 12 - A recursive algorithm must ______ in the base...Ch. 12 - An algorithm that uses a loop will usually run...Ch. 12 - Some problems can be solved through recursion...Ch. 12 - It is not necessary to have a base case in all...Ch. 12 - In the base case, a recursive method calls itself...Ch. 12 - In Program 12-2 , presented earlier in this...Ch. 12 - In this chapter, the rules given for calculating...Ch. 12 - Is recursion ever required to solve a problem?...Ch. 12 - When recursion is used to solve a problem, why...Ch. 12 - How is a problem usually reduced with a recursive...Ch. 12 - What will the following program display? def...Ch. 12 - Prob. 2AWCh. 12 - The following function uses a loop. Rewrite it as...Ch. 12 - Prob. 1PECh. 12 - Prob. 2PECh. 12 - Prob. 3PECh. 12 - Largest List Item Design a function that accepts a...Ch. 12 - Recursive List Sum Design a function that accepts...Ch. 12 - Prob. 6PECh. 12 - Prob. 7PECh. 12 - Ackermann's Function Ackermann's Function is a...
Additional Engineering Textbook Solutions
Find more solutions based on key concepts
For each of the following E-R diagrams from Chapter 2 C: Transform the diagram to a relational schema that show...
Modern Database Management (12th Edition)
Which of the following are correct? a. False |= True. b. True |= False. c. (A B) |= (A B). d. A B |= A B. e...
Artificial Intelligence: A Modern Approach
T F: The multiplication operator has higher precedence than the addition operator.
Starting Out With Visual Basic (7th Edition)
Describe some objects that might be found in a program for simulating the pedestrian traffic in a hotel lobby. ...
Computer Science: An Overview (12th Edition)
Write out the header of a for-each loop to process an ArrayList called tracks. Don't worry about the loop's bod...
Objects First with Java: A Practical Introduction Using BlueJ (6th Edition)
Show the output of the following code: public class Test { public static void main(String[] args) { WeightedGra...
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
Knowledge Booster
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
- Write recursive functions for the following equations:a. Harmonic number is defined by the equationb. Fibonacci numbers are defined by the formula:FN = FN-2 + FN-1, for N ≥ 2 with F0 = 0 and F1 = 1arrow_forwardRecursion in programming is described as when a function/method makes a direct or indirect call to itself. Which of the features is not valid for a recursive function. Select one: a. The Recursive calls can be more then one b. The Recursive Call – the function calls itself with an input which is a step closer to the stop condition c. The Stoping Conditions can be more than one d. The Recursive call is optional. e. A Stop Condition – the function returns a value when a certain condition is satisfied, without a further recursive callarrow_forwardRecursion can be direct or indirect. It is direct when a function calls itself and it is indirect recursion when a function calls another function that then calls the first function. To illustrate solving a problem using recursion, consider the Fibonacci series: - 1,1,2,3,5,8,13,21,34...The way to solve this problem is to examine the series carefully. The first two numbers are 1. Each subsequent number is the sum of the previous two numbers. Thus, the seventh number is the sum of the sixth and fifth numbers. More generally, the nth number is the sum of n - 2 and n - 1, as long as n > 2.Recursive functions need a stop condition. Something must happen to cause the program to stop recursing, or it will never end. In the Fibonacci series, n < 3 is a stop condition. The algorithm to use is this: 1. Ask the user for a position in the series.2. Call the fib () function with that position, passing in the value the user entered.3. The fib () function examines the argument (n). If n < 3…arrow_forward
- Beeblebrox question helparrow_forwardWrite a recursive function to find the factorial of a number.int factorial(int n);arrow_forwardConsider the recursive procedure which computes the nth Fibonacci number is the one below. procedure Fl (n) //a function which returns the nth Fibonacci number.// if n < 2 then return(n) else return (F2(2,n,1,1)) endif end Fl procedure F2(i,n,x,y) if iarrow_forward
- When a recursive function is run, there is an additional demand placed on the memory of the computer and the amount of time it takes to run the programme.arrow_forwardUsing Java programming write a recursive function that accepts two arguments into the parameters x and y. The function should return the value of x times y. Remember, multiplication can be performed as repeated addition as follows: 7 * 4=4+4+4+4+4+4+4arrow_forwardcomplete the identified statement such that the recursive function funx(n+1) = n*funx(n-1), any positive integer value of n, and funx(1)=1arrow_forward
- Using recursive functions in Python, given three letters in the alphabet, get their permutations together with the combinations of any two letters from it.arrow_forwardWrite a program that performs the following functionalities:1. Fibonacci: a recursive function that computes the fibonacci series, which is defined as followsfibonacci (n) = fibonacci(n-2) + fibonacci(n-1)fibonacci(0) = 0fibonacci(1) = 1 So the fibonacci looks like: 0 1 1 2 3 5 8 13 21 34 …. Therefore, fibonacci(4) = 3, fibonacci(5) = 5, fibonacci(7)=13 2. Sum: a recursive function that computes the sum of integers 1, 2, 3, …., n for a given number n. So Sum(6) should return 1 + 2 + 3 + 4 + 5 + 6 , i.e. 21.sum(n) = n + sum(n-1) 3. Largest: a recursive function that computes the largest value for an integer array of positiveand negative values. For example, for the array below, the function largest should return 22,which is the largest value in the array. You can assume there are no more 20 integers in thearray. Think of how to formulate the recurrence relation in this problem yourself. 4. The 4th problem mimics the situation where eagles flying in the sky can be spotted and…arrow_forwardThe following recursive function takes three positive integer arguments: def compute(n,x,y) : if n==0 : return x return compute(n-1,x+y,y) What is the value returned by the compute function? n*x+y x+y x+n*y x What if: will the returned value be for the compute function defined in the question above if the argument n is negative? x x-n*y x+n*y The function will never return a value.arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningC++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrProgramming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:Cengage
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Computational Software for Intelligent System Design; Author: Cadence Design Systems;https://www.youtube.com/watch?v=dLXZ6bM--j0;License: Standard Youtube License