Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The non-tail recursive version shown in class The question needs to be done using OCaml in this format. 4. In lecture 11 quickly explained the

image text in transcribed

The non-tail recursive version shown in class

image text in transcribed

The question needs to be done using OCaml in this format.

image text in transcribed

4. In lecture 11 quickly explained the Russian peasant algorithm for fast exponentiation. In this exercise you have to implement a tail-recursive version of the algorithm. Everything is with integers in this question so please do not use floating point operations. Our tester will detect whether you used built-in functions, so please don't try to use them. # let even n = (n mod 2) = 0; ; # let odd n = (n mod 2) = 1;; # let rec rpe base power = if base = 0 then 0 else if power = 0 then i else if (odd power) then base * (rpe base (power - 1)) else let tmp = (rpe base (power/2)) in tmp * tmp; ; val rpe : int -> int -> int = (* 04 TODO: Implement tail recursive helper fast_exp_aux. *) let rec fast_exp_aux (base, power, acc) = raise NotImplemented (* 04 TODO: Implement fast_exp using fast_exp_aux. *). let fast_exp (base, power) = raise NotImplemented 4. In lecture 11 quickly explained the Russian peasant algorithm for fast exponentiation. In this exercise you have to implement a tail-recursive version of the algorithm. Everything is with integers in this question so please do not use floating point operations. Our tester will detect whether you used built-in functions, so please don't try to use them. # let even n = (n mod 2) = 0; ; # let odd n = (n mod 2) = 1;; # let rec rpe base power = if base = 0 then 0 else if power = 0 then i else if (odd power) then base * (rpe base (power - 1)) else let tmp = (rpe base (power/2)) in tmp * tmp; ; val rpe : int -> int -> int = (* 04 TODO: Implement tail recursive helper fast_exp_aux. *) let rec fast_exp_aux (base, power, acc) = raise NotImplemented (* 04 TODO: Implement fast_exp using fast_exp_aux. *). let fast_exp (base, power) = raise NotImplemented

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_2

Step: 3

blur-text-image_3

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

More Books

Students also viewed these Databases questions