[WPI] [cs2223] [cs2223 text] [News] [Syllabus] [Exams] [Exam 3]
This is Newton's method for finding the square root of a number. It starts when the error is about n and ends when the error is 2-20 and the error is roughly halved during each step. Thus the order is approximately:
This is verified in the attached script. Note when n is a perfect square that the approximately 20 additional steps are not performed.
The function calls itself recursively twice with n-1
and
it performs two subtractions and two additions. The recurrence relation
for the number of additions or subtractions is:
The solution is:
When n = 1050, the answer is a very large number:
The attached script shows that this function produces the correct answer when n=20.
Use the algorithm from Section 8.1.1 of the text to calculate the binomial coefficient. The attached script shows that this function produces the correct answers - compare with the table in Section 8.6 of the text.
long int catalan(int number) // catalan number { // uses pascal's triange; assume 0 <= n <= 20 long int triangle[39][39] = {0}; // it never gets bigger than this int n, k; // see section 8.1.1 of the text for (n = 0; n < 39; n++) triangle[n][0] = 1; for (n = 1; n < 39; n++) // fill in pascal's triangle for (k = 1; k <= n; k++) triangle[n][k] = triangle[n-1][k-1] + triangle[n-1][k]; return triangle[2*number - 2][number - 1] / number; } // end catalan()
The grading criteria are available. These are subject to interpretation by the grader. As we stated in class, our primary goal in the grading of these exams is consistency. If your intrepretation differs from the grader's and the grader has applied her/his criteria uniformly, then the grader's interpretation will prevail.
[cs2223 text] [News] [Syllabus] [Exams] [Exam 3] |