Concept explainers
Ackermarm’s Function
Ackermann’s function is a recursive mathematical
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))
Test your method in a program that displays the return values of the following method calls:
ackermann(0, 0) ackermann(0, 1) ackermann(1, 1) ackermann(1, 2)
ackermann(1, 3) ackermann(2, 2) ackermann(3, 2)
Want to see the full answer?
Check out a sample textbook solutionChapter 14 Solutions
Starting Out with Java: Early Objects (6th Edition)
Additional Engineering Textbook Solutions
Introduction To Programming Using Visual Basic (11th Edition)
Modern Database Management (12th Edition)
Introduction to Programming Using Visual Basic (10th Edition)
Computer Science: An Overview (12th Edition)
Starting Out With Visual Basic (7th Edition)
Modern Database Management
- Pascal's triangle is a useful recursive definition that tells us the coefficients in the expansion of the polynomial (x + a)^n. Each element in the triangle has a coordinate, given by the row it is on and its position in the row (which you could call a column). Every number in Pascals triangle is defined as the sum of the item above it and the item above it and to the left. If there is a position that does not have an entry, we treat it as if we had a 0 there. *picture of the pascals triangle* Given the following recursive function signature, write the recursive function that takes a row and a column and finds the value at that position in the triangle. Assume that the triangle starts at row 0 and column 0. Examples: pascal(2, 1) -> 2, pascal(1, 2) -> 0 public int pascal(int row, int column) { }arrow_forwardWrite recursive methods for the following operations: • removeDup(String s): takes string s and returns another string r constructed from s after removing all duplicates. For example, when s = "pineapples", r will be "pineals". • intersection(String s1, String s2): takes two duplicate-free strings and returns the string consisting of all letters that appear in both s1 and s2. • union(String s1, String s2): takes two duplicate-free strings and returns the string consisting of all letters that appear in either s1 or s2. • difference(String s1, String s2): takes two duplicate-free strings and returns the string consisting of all letters that appear only in s1. For example, when s1 = "aples" and s2 = "pears", intersection(s1, s2) will return "apes", union(s1, s2) will "aplesr", and difference(s1, s2) "l". Calling method removeDup() is not allowed in intersection(s1, s2) , union(s1, s2) or difference(s1, s2) method. Your program should check strings are duplicate free before they are…arrow_forwardJAVA Question 2: For two integers m and n, their GCD (Greatest Common Divisor) can be computed by a recursive method. Write a recursive method gcd(m,n) to find their Greatest Common Divisor. Method body: If m is 0, the method returns n. If n is 0, the method returns m. If neither is 0, the method can recursively calculate the Greatest Common Divisor with two smaller parameters: One is n, the second one is m mod n (or m % n). The recursive method cannot have loops. Note: although there are other approaches to calculate Greatest Common Divisor, please follow the instructions in this question, otherwise you will not get the credit. main method: Prompt and read in two numbers to find the greatest common divisor. Call the gcd method with the two numbers as its argument. Print the result to the monitor. Example program run: Enter m: 12 Enter n: 28 GCD(12,28) = 4 And here is what I have so far, package CSCI1302;import java.util.*;public class RecursionDemo { public static void…arrow_forward
- When recursion is used to solve a problem, why must the recursive method call itself to solve a smaller version of the original problem?arrow_forwardWrite a recursive function that returns the nth Fibonacci number from the Fibonacciseries.int fib(int n);arrow_forwardJava programming language Write a recursion method to sum the odd numbers a) from 100 to 0 b) from 0 to 100 and then test it.arrow_forward
- def sum ( lst ): """ Sums a list of numbers .""" if len ( lst ) == 0: return 0 return lst [0] + sum ( lst [1:]) def factorial ( number ): """ Returns the factorial value of any number """ if (( number == 0) or ( number == 1)): return 1 else : return number * factorial ( number - 1) Write down a tail recursive implementation of the function sum in python language. You can use the helper function in your solution. Write down a tail recursive implementation of the function factorial in python language.arrow_forwardrecursive solution oddEvenMatchRec:the method takes an integer array as a parameter and returns a boolean. The method returns trueif every odd index contains an odd integer AND every even index contains aneven integer(0 is even). Otherwise it returns falsarrow_forwardUsing recursion, write a Java program that creates an array of 10 numbers entered by the user. The recursive function receives the array and the position of the starting point of the array. The function returns the index of the smallest element of the array. The main method outputs the smallest of these numbers using the returned index.arrow_forward
- Please answer fast Question 1 Answer following questions and write corresponding algorithms. Algorithm: sqrt(n) [main] 1. return sqrtHelper(Arg 1, Arg 2) Algorithm: sqrtHelper(n,m) 1. if m*m <= n 2. return m 3. else 4. return sqrtHelper(Arg 3, Arg 4) 5. endif (a) Write an recursive algorithm called isPrime(n) that takes a positive integer and returns True if it is prime and False otherwise. You must call the function sqrt(n) as a sub- algorithm. Trace your algorithm for isPrime(41). You only need to show the detail in the main algorithm and its helper function (if there is any).arrow_forwardPYTHON RECURSIVE FUNCTION Write a python program that lists all ways people can line up for a photo (all permutations of a list of strings). The program will read a list of one word names, then use a recursive method to create and output all possible orderings of those names, one ordering per line. When the input is: Julia Lucas Mia then the output is (must match the below ordering): Julia Lucas Mia Julia Mia Lucas Lucas Julia Mia Lucas Mia Julia Mia Julia Lucas Mia Lucas Juliaarrow_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_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning