Introduction to Algorithms
October 1, 2004
Massachusetts Institute of Technology
6.046J/18.410J
Professors Piotr Indyk and Charles E. Leiserson
Handout 9
Problem Set 2 Solutions
Reading:
Chapters 59, excluding 5.4 and 8.4
Both exercises and problems should be solved, but
only the problems
should be turned in.
Exercises are intended to help you master the course material. Even though you should not turn in
the exercise solutions, you are responsible for material covered in the exercises.
Mark the top of each sheet with your name, the course number, the problem number, your
recitation section, the date and the names of any students with whom you collaborated.
You will often be called upon to “give an algorithm” to solve a certain problem. Your writeup
should take the form of a short essay. A topic paragraph should summarize the problem you are
solving and what your results are. The body of the essay should provide the following:
1. A description of the algorithm in English and, if helpful, pseudocode.
2. At least one worked example or diagram to show more precisely how your algorithm works.
3. A proof (or indication) of the correctness of the algorithm.
4. An analysis of the running time of the algorithm.
Remember, your goal is to communicate. Full credit will be given only to correct algorithms
which are
which are described clearly
. Convoluted and obtuse descriptions will receive low marks.
Exercise 21.
Do Exercise 5.24 on page 98 in CLRS.
Exercise 22.
Do Exercise 8.23 on page 170 in CLRS.
Problem 21.
Randomized Evaluation of Polynomials
In this problem, we consider testing the equivalence of two polynomials in a ﬁnite ﬁeld.
A
ﬁeld
is a set of elements for which there are addition and multiplication operations that satisfy
commutativity, associativity, and distributivity. Each element in a ﬁeld must have an additive and
multiplicative identity, as well as an additive and multiplicative inverse. Examples of ﬁelds include
the real and rational numbers.
A
ﬁnite ﬁeld
has a ﬁnite number of elements. In this problem, we consider the ﬁeld of integers
modulo
p
. That is, we consider two integers
a
and
b
to be “equal” if and only if they have the same
remainder when divided by
p
, in which case we write
a
≥
b
mod
p
. This ﬁeld, which we denote as
Z
/p
, has
p
elements,
{
0
, . . . , p
−
1
}
.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document2
Handout 9: Problem Set 2 Solutions
Consider a polynomial in the ﬁeld
Z
/p
:
n
a
(
x
) =
a
i
x
i
mod
p
(1)
i
=0
A
root
or
zero
of a polynomial is a value of
x
for which
a
(
x
) = 0
. The following theorem describes
the number of zeros for a polynomial of degree
n
.
Theorem 1
A polynomial
a
(
x
)
of degree
n
has at most
n
distinct zeros.
Polly the Parrot is a very smart bird that likes to play math games. Today, Polly is thinking of a
polynomial
a
(
x
)
over the ﬁeld
Z
/p
. Though Polly will not tell you the coefﬁcients of
a
(
x
)
, she
will happily evaluate
a
(
x
)
for any
x
of your choosing. She challenges you to ﬁgure out whether or
not
a
is equivalent to zero (that is, whether
x
≤ {
0
, . . . , p
−
1
}
:
a
(
x
)
≥
0
mod
p
).
This is the end of the preview.
Sign up
to
access the rest of the document.
 Fall '08
 ErikDemaine
 Algorithms, Alice, M ASTER

Click to edit the document details