Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Exercise Using the provided java source code template lab1-student.java, complete the recursive method public static long recStirling(int m, int n) //assume m,n >=1 to compute

Exercise Using the provided java source code template lab1-student.java, complete the recursive method public static long recStirling(int m, int n) //assume m,n >=1 to compute and return the value of S(m, n) using the recurrence given above. The input to the method will be m and n which you can assume to be positive integers. Then complete the iterative method public static long iterStirling(int m, int n) //assume m,n >=1 to compute and return the value S(m, n) for postive integer inputs m, n. This method must use a loops (instead of recursion) and a 2-dimensional array (to store the numbers as you compute them from S(1, 1) to S(m, n)). The idea for the iterative method: using the recurrence relation, compute and put S(i, j) into position (i, j) of the array, for i from 1 to m and j from 1 to n. Use the base cases to initialize the array and be careful the order in which you compute array entries. You need to ensure that if you are computing S(i, j) that S(i 1, j 1) and S(i 1, j) have already be computed and stored in the array. Finally, use the main method provided that calls each of the above methods to find S(20, 12). The main method reports how much time each of the two methods takes to compute S(20, 12) and prints the answer computed by each. Ensure that the two answers are the same.

public class lab1 {

public static void main(String args[]) { long timestamp; final int m = 20, n = 12; long result; long start, stop, elapsedTime;

start = System.nanoTime(); result = recStirling(m,n); stop = System.nanoTime(); elapsedTime = stop - start; System.out.println("Elapsed time for recursive call:"+elapsedTime+" nanoseconds."); System.out.println("S("+m+","+n+")="+result); start = System.nanoTime(); result = iterStirling(m,n); stop = System.nanoTime(); elapsedTime = stop - start; System.out.println("Elapsed time for iterative call:"+elapsedTime+" nanoseconds."); System.out.println("S("+m+","+n+")="+result); } //recursive method for computing Stirling number S(m,n) public static long recStirling(int m, int n) { //assume that 1 < n <= m }

//iterative method for computing Stirling number S(m,n) public static long iterStirling(int m, int n) { //assume that 1 < n <= m }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Beginning C# 2005 Databases

Authors: Karli Watson

1st Edition

0470044063, 978-0470044063

More Books

Students also viewed these Databases questions