Answered step by step
Verified Expert Solution
Link Copied!

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

image text in transcribed

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

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

Students also viewed these Databases questions