Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Complete the count_operation function to count the number of operations incurred by calling tab on each value in the given list. To count the number

Complete the count_operation function to count the number of operations incurred by calling tab on each value in the given list. 

To count the number of arithmetic operations being performed by calls to tab(2) and to tab(3). The table below shows the number of operations incurred by each sub-computation for tab(2)

Expression

Reason

Ops encountered

Running Total

tab(2)

top level call

0

foo(2, 0)

i=0 in while loop of tab

None (yet)

0

range(1, n+1)

In foo: bound of for i loop.

+

1

count = count + bar(0, 0)

In foo, i=1, j=0, in for j loop.

+

2

range(2 * 0)

In bar: bound of for j loop

*

3

ub = 2 * ub

for j completed

*

4

count = count + bar(0, 0)

In foo, i=2, j=0 in for j loop.

+

5

range(2 * 1)

In bar, val=1, bound of for j loop

*

30

v % 2 == 1

In bar, v=1, j=0, if predicate in for j loop

%

31

count+1

In bar, v=1, consequent of if

+

32

v // 2

In bar, after if in for j loop, j=0

//

33

v % 2 == 1

In bar, v=0, j=1, if predicate in for j loop

%

34

ncount+1

In bar, v=0, alternative of if

+

35

v // 2

In bar, after if in for j loop, j=1

//

36

ub = 2 * ub

for j completed, i=2

*

37

i = i + 1

Back in tab inside while loop

+

38

Sample Input

2 2 3 

Sample Output

38 183
def tab(n): tbl = [] i = 0 while i < n: tbl.append(foo(n, i)) i = i + 1 return tbl def foo(n, r): ub = 1 count = 0 for i in range(1, n+1): for j in range(ub): count = count + bar(j, r) ub = 2 * ub return count def bar(val, r): count = 0 ncount = 0 v = val for j in range(2 * r): if v % 2 == 1: count = count + 1 else: ncount = ncount + 1 v = v // 2 if count == r: return 1 else: return 0

def count_operations(ns):

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered 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