Here are two statements. fib1(44) ran in 275.69 seconds and fib2(44) ran in 0.000 seconds fib1 (44) ran in 0.000 seconds and fib2(44) ran in 275.69 seconds Which of these two statements is correct? Answer either A or B.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Please explain

The Fibonacci sequence is defined as 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
The first two terms, f[0) and f(1), are equal to 1. Every subsequent term is the sum of the
two
previous terms. Thus for each n≥2n22, we have f(n)=f(n-1)+f(n-2).
Here are two Python programs to calculate f(n)f(n). One of these two methods uses
bottom-up dynamic programming and one of these two methods uses recursion. But which
one is which?
def fib1(n):
if n<=1: return 1
else: return fib1(n-1)+fib1(n-2)
def fib2(n):
table [ for i in range(n+1)]
for i in range(n+1):
if i=1: table[i]=1
else: table[i]=table[i-1]+table[i-2]
return table[n]
Part b
1 Point
To help me figure which algorithm is which, I decided to calculate fib1 (44) and fib2 (44)
and was shocked to discover that the running times were so different!
Here are two statements.
fib1(44) ran in 275.69 seconds and fib2(44) ran in 0.000 seconds fib1 (44) ran in 0.000
seconds and fib2 (44) ran in 275.69 seconds
Which of these two statements is correct? Answer either A or B.
Transcribed Image Text:The Fibonacci sequence is defined as 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... The first two terms, f[0) and f(1), are equal to 1. Every subsequent term is the sum of the two previous terms. Thus for each n≥2n22, we have f(n)=f(n-1)+f(n-2). Here are two Python programs to calculate f(n)f(n). One of these two methods uses bottom-up dynamic programming and one of these two methods uses recursion. But which one is which? def fib1(n): if n<=1: return 1 else: return fib1(n-1)+fib1(n-2) def fib2(n): table [ for i in range(n+1)] for i in range(n+1): if i=1: table[i]=1 else: table[i]=table[i-1]+table[i-2] return table[n] Part b 1 Point To help me figure which algorithm is which, I decided to calculate fib1 (44) and fib2 (44) and was shocked to discover that the running times were so different! Here are two statements. fib1(44) ran in 275.69 seconds and fib2(44) ran in 0.000 seconds fib1 (44) ran in 0.000 seconds and fib2 (44) ran in 275.69 seconds Which of these two statements is correct? Answer either A or B.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY