Answered step by step
Verified Expert Solution
Question
1 Approved Answer
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., 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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started