Question: Problem 2. (555 Points) Computing the exponent of a number (i.e., n*k) can take O(n) time if done by simply multiplying by n, k number

 Problem 2. (555 Points) Computing the exponent of a number (i.e.,

Problem 2. (555 Points) Computing the exponent of a number (i.e., n*k) can take O(n) time if done by simply multiplying by n, k number of times. A logarithmic way for computing exponents is by using the idea of successive squaring. For instance, rather than computing n*8 as: n* n*n n n*n *n * n, we can compute it by repeatedly squaring, beginning with n, computing n"2, ^4 and finally nag. In general, the algorithm would do the following n*k (n (k/2))A2 if k is even n*k n n (k-1) if k is odd Implement functions in Haskell to do this in each of the following ways a) fastExpl: a conditional expression (i.e., using if-then-else) b) fast&p2: guarded equations (i.e., using l to separate cases) c) fastExp3: pattern matching

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!