# 辅导data编程、辅导Python，c++程序

- 首页 >> Web Note: Whenever explanation is requested, the explanation is worth 80% of the points unless otherwise stated.

1. [5 pts] Is the following statement Always True, Never True, or Sometimes True?

“ f(n) + O(f(n)) = Θ(g(n)) for any non-negative functions f and g and positive n”

Please support your answer with an explanation, i.e., a proof or an example.

2. [10 pts] Please rank the following function by increasing order of growth and explain your answer.

3. [5 pts] Please compute the tightest asymptotic bound for f(n, n), where:

f(x, c) = Θ(x) for c ≤ 2

f(c, y) = Θ(y) for c ≤ 2

f(x, y) = Θ(x + y) + f(x2,y2)

Note: You can use any method, as long as it is correct and the derivation of the solution is provided.

4. [20 pts] Chief Eng. Montgomery Scott (aka Scotty) discovers many communication systems from various

spacecraft and satellites that have been left abandoned hundreds of years ago. After days of tinkering, he

found that an essential component in each of these communication systems is an error-correcting code,

which relies on multiplications of polynomials with an extremely high degree.

To test if a systems is working, Scotty would like to verify the polynomial multiplications in the system.

Verifying polynomial multiplications here means that, given three polynomials, he would like to know whether A(x) · B(x) = C(x). He knows that FFT

can verify polynomial multiplications in O(n log(n)).

But, since the polynomial order is often huge, Scotty would like to find a faster algorithm. He is even

willing to relax the requirements of the algorithms, such that it returns the correct answer with high

probability, rather than always returning the correct answer. To help Scotty develop this algorithm, please

answer the following questions:

(a) [5 pts] Describe a randomized algorithm that verifies A(x) · B(x) = C(x) in O(n) time and has the

following properties:

i. If A(x) · B(x) = C(x), the algorithm outputs True.

ii. If A(x)·B(x) , C(x), the algorithm outputs True or False, and the probability that the algorithm

outputs False is at least 1

2

.

(b) [5 pts] Show that the algorithm you developed in (a) indeed satisfies property-i and property-ii

above.

(c) [7 pts] Describe a randomized algorithm to verify A(x) · B(x) = C(x) that will return the correct

answer with probability at least (1−). Please explain how this property is satisfied by the algorithm.

This explanation is worth 50% of the points. Hint: The algorithm in (a) might be useful.

(d) [3 pts] Please derive the asymptotic upper bound of the running-time of the algorithm in (c) in terms

of n and 1

.

Page 1 of 2 – Algorithms – ( COMP3600/6466 )

5. [10 pts] Mr PQ said that he had created extremely efficient Extract-Max and Build-Heap operations for

Max-Heap data structures that rely on comparison operation (i.e., the heap data structure as discussed in

class). In particular, he claimed the following worst time complexity for his algorithms:

• Extract-Max runs in Θ(1) time (Recall: Extract-Max includes retrieving an element from the heap

and fixing the heap) AND

• Build-Heap runs in Θ(n) time

Could Mr PQ’s claim be True? Please explain why or why not.

6. [15 pts] Mr T would like to typeset n words neatly. Suppose each word consists of li (i ∈ [1, · · · , n])

characters and suppose monospaced font (all characters having the same width) is used. Each line can

hold at most C characters, the text is left-aligned, and the words cannot be split between lines. Mr T

knows that the nicest looking paragraph would be one with the minimum extra white space at the end of

each line. When a line consists of word-i to word-j (i, j ∈ [1, n]), the number of extra white space in that

line can be computed as E = C − (

Pj

k=i

lk) − (j − i). Mr T’s goal is to find the typeset that will minimize

the sum of extra white spaces over all lines. Please:

(a) [10 pts] Describe a dynamic programming algorithm for Mr T.

(b) [5 pts] Derive the time complexity of the algorithm you described in (a).

7. [10 pts] Suppose G(V, E,w) is an undirected weighted graph with V being the set of vertices, E being the

set of edges, and w being the weight. Please answer the following questions:

(a) [5 pts] Suppose T is a Minimum Spanning Tree of G. Is it True that any path in T between any

pairs of vertices v, v

0 ∈ V must be the shortest path in G? Please provide a proof if it is True and a

counter-example otherwise.

(b) [5 pts] Will the following pseudo-code returns the Minimum Spanning Tree of G? If the answer is

yes, please provide a proof. Otherwise, please provide a counter-example.

Algorithm 1 Algorithm-1(G(V, E,w))

1: T = ∅

2: for each edge e ∈ E, taken in arbitrary order do

3: if T ∪ e has no cycles then

4: T = T ∪ e

5: Return T

8. [5 pts] Consider a hash table T with m slots. Suppose T contains a single element, and this element has

key k. Ms Search has been searching for r keys that are different from k in hash table T. Assuming

T uses simple uniform hashing, is r

m

the probability that at least one of the r searches collide with the

slot containing key k? If this probability is correct, please provide a derivation to support it. Otherwise,

please provide the new probability and its derivation.

oOo That’s All Folks oOo

Page 2 of 2 – Algorithms – ( COMP3600/6466 )

1. [5 pts] Is the following statement Always True, Never True, or Sometimes True?

“ f(n) + O(f(n)) = Θ(g(n)) for any non-negative functions f and g and positive n”

Please support your answer with an explanation, i.e., a proof or an example.

2. [10 pts] Please rank the following function by increasing order of growth and explain your answer.

3. [5 pts] Please compute the tightest asymptotic bound for f(n, n), where:

f(x, c) = Θ(x) for c ≤ 2

f(c, y) = Θ(y) for c ≤ 2

f(x, y) = Θ(x + y) + f(x2,y2)

Note: You can use any method, as long as it is correct and the derivation of the solution is provided.

4. [20 pts] Chief Eng. Montgomery Scott (aka Scotty) discovers many communication systems from various

spacecraft and satellites that have been left abandoned hundreds of years ago. After days of tinkering, he

found that an essential component in each of these communication systems is an error-correcting code,

which relies on multiplications of polynomials with an extremely high degree.

To test if a systems is working, Scotty would like to verify the polynomial multiplications in the system.

Verifying polynomial multiplications here means that, given three polynomials, he would like to know whether A(x) · B(x) = C(x). He knows that FFT

can verify polynomial multiplications in O(n log(n)).

But, since the polynomial order is often huge, Scotty would like to find a faster algorithm. He is even

willing to relax the requirements of the algorithms, such that it returns the correct answer with high

probability, rather than always returning the correct answer. To help Scotty develop this algorithm, please

answer the following questions:

(a) [5 pts] Describe a randomized algorithm that verifies A(x) · B(x) = C(x) in O(n) time and has the

following properties:

i. If A(x) · B(x) = C(x), the algorithm outputs True.

ii. If A(x)·B(x) , C(x), the algorithm outputs True or False, and the probability that the algorithm

outputs False is at least 1

2

.

(b) [5 pts] Show that the algorithm you developed in (a) indeed satisfies property-i and property-ii

above.

(c) [7 pts] Describe a randomized algorithm to verify A(x) · B(x) = C(x) that will return the correct

answer with probability at least (1−). Please explain how this property is satisfied by the algorithm.

This explanation is worth 50% of the points. Hint: The algorithm in (a) might be useful.

(d) [3 pts] Please derive the asymptotic upper bound of the running-time of the algorithm in (c) in terms

of n and 1

.

Page 1 of 2 – Algorithms – ( COMP3600/6466 )

5. [10 pts] Mr PQ said that he had created extremely efficient Extract-Max and Build-Heap operations for

Max-Heap data structures that rely on comparison operation (i.e., the heap data structure as discussed in

class). In particular, he claimed the following worst time complexity for his algorithms:

• Extract-Max runs in Θ(1) time (Recall: Extract-Max includes retrieving an element from the heap

and fixing the heap) AND

• Build-Heap runs in Θ(n) time

Could Mr PQ’s claim be True? Please explain why or why not.

6. [15 pts] Mr T would like to typeset n words neatly. Suppose each word consists of li (i ∈ [1, · · · , n])

characters and suppose monospaced font (all characters having the same width) is used. Each line can

hold at most C characters, the text is left-aligned, and the words cannot be split between lines. Mr T

knows that the nicest looking paragraph would be one with the minimum extra white space at the end of

each line. When a line consists of word-i to word-j (i, j ∈ [1, n]), the number of extra white space in that

line can be computed as E = C − (

Pj

k=i

lk) − (j − i). Mr T’s goal is to find the typeset that will minimize

the sum of extra white spaces over all lines. Please:

(a) [10 pts] Describe a dynamic programming algorithm for Mr T.

(b) [5 pts] Derive the time complexity of the algorithm you described in (a).

7. [10 pts] Suppose G(V, E,w) is an undirected weighted graph with V being the set of vertices, E being the

set of edges, and w being the weight. Please answer the following questions:

(a) [5 pts] Suppose T is a Minimum Spanning Tree of G. Is it True that any path in T between any

pairs of vertices v, v

0 ∈ V must be the shortest path in G? Please provide a proof if it is True and a

counter-example otherwise.

(b) [5 pts] Will the following pseudo-code returns the Minimum Spanning Tree of G? If the answer is

yes, please provide a proof. Otherwise, please provide a counter-example.

Algorithm 1 Algorithm-1(G(V, E,w))

1: T = ∅

2: for each edge e ∈ E, taken in arbitrary order do

3: if T ∪ e has no cycles then

4: T = T ∪ e

5: Return T

8. [5 pts] Consider a hash table T with m slots. Suppose T contains a single element, and this element has

key k. Ms Search has been searching for r keys that are different from k in hash table T. Assuming

T uses simple uniform hashing, is r

m

the probability that at least one of the r searches collide with the

slot containing key k? If this probability is correct, please provide a derivation to support it. Otherwise,

please provide the new probability and its derivation.

oOo That’s All Folks oOo

Page 2 of 2 – Algorithms – ( COMP3600/6466 )