Discrete Mathematical Structures Homework 0 Solutions
Grading: The questions on this homework have a total value
of 52 points but 12 points
will be considered bonus points (i.e. score of 40 or higher will receive full
credit).
These questions asked only for short answers. An
explanation isn't required for full credit,
though it may help you get partial credit if your short answer is wrong.
1. [12 points] Simplify the following expressions as much
as possible, without using a calcu-
lator (either hardware or software). Do not approximate. Express all rational
numbers as
improper fractions.
For this problem, remember the following identities:
(a) ab mod m ≡ ((a mod m) × (b mod m)) mod m
(b) if a ≡ b then an ≡ bn mod m
First, we can write 29999 as 21+9998 = 2(29998) = 2(22×4999)
= 2((22)4999)) = 2(44999).
Using the identity (a), we have:
2(44999) ≡ ((2 mod 3) × (44999 mod 3)) mod 3.
Given that 4 ≡ 1 mod 3, using the identity (b):
44999 ≡ 14999 mod 3 = 1 mod 3.
Thus:
29999
≡2(44999) mod 3
≡ ((2 mod 3) × (44999 mod 3)) mod 3
≡ ((2 mod 3) × (1 mod 3)) mod 3
≡ ((2 mod 3) × 1) mod 3
≡ 2 mod 3 = 2
Another way to attack this problem is to compute 2n mod 3
for a number of small values
of n. The value is 2 if n is odd and 1 if n is even. We'll see later that an
inductive proof
can formalize this approach.
Using synthetic division as :
We have:
Thus
Or you could factor the top into
and then cancel the
terms.
From the identity
(often used for changing the base of a logarithm),
setting a = 10, b = 100000, and c = 2, we have:
First, using partial fractions:
Multiplying both sides of the equation by i(i + 1)
Setting
i = 0
Setting i = -1
Now we have:
Another approach is to compute the value of the summation
for the first few values of n,
adding together the fractions and simplifying the result. The first few values
are: 1/2 , 2/3 ,
3/4 , 4/5 . The formula is then obvious. Mathematical induction (see later this
course) could
be used to prove it's correct.
2. [10 points] Suppose we have the following sets:
A =
,
B = {1, 2, 3}
C = {3, 4, 5}
D = Z
Note: Z denotes the set of integer numbers.
(a) What is (D ∩ C) ∪
B ?
(b) What is (B ∪ D ∩
A) ∪ C?
This formula is actually ambiguous. Another set of parentheses would be required
to indicate
whether the first union or the first intersection is done first. Either of the
answers is ok for full
credit, explaining the ambiguity is worth 1 point bonus.
Assuming ∪ takes precedence over ∩:
Assuming ∩ takes precedence over
∪:
(c) What is (D ∩B ∩
C) ∪D?
(d) What is (D - B) ∩ C?
3. [10 points] Suppose F(x) = x3 - 5x and G(x) = x + 4 and H(x) = sin x.
(a) What is F(G(z))?
(b) What is G(G(G(G(G(10)))))?
(c) What is H(G(F(1))) × F(G(H()))?
4. [10 points] There is a popular and unverifiable story
that Carl Friedrich Gauss (mathematician, 1777-
1855) had a lazy teacher while in grade school. In order to keep the students
busy so he could take a
nap, the teacher asked the class to add the numbers 1 to 100. To the profound
disappointment of the
teacher, Gauss was able to do this in less than a minute...and you can, too.
(a) What is the sum of the numbers 1 to 100?
Hint: Imagine writing out the numbers 1 to 100 in one row and then in a second
row reversing
the order and writing the numbers from 100 down to 1:
Then, add the numbers in each column and see if you notice
a pattern.
Answer. After adding each column we have that (1 + 100) = (2 + 99) = (3 + 98) …
= 101. We
have 100 such columns, which added together yield 100 ×
101 = 10100. When we added all of
the columns, each number was added twice (for example, the first and last
columns have the
numbers 1 and 100, the second and second to last columns have the numbers 2 and
99, and so
on). Thus, dividing 10100 by 2 yields our result: 10100/2 = 5050.
(b) Write an expression for the sum of the numbers from 1
to n using summation notation. Your
answer should look like
where f(n) is a simple function that yields the sum of the
first n numbers for any positive integer
n.
Answer. Generalizing the pattern we discovered before, we
have:
The value of each column is n + 1, and we have n of such
columns. Adding all of the columns
together yields n(n + 1). Again, given that each number was added twice.
dividing by 2 gives the
desired formula:
5. [10 points] The word algorithm, derived from the name
of the ninth-century Persian mathematician
refers to a step-by- step method for solving a problem. Consider the following
algorithm
for solving a problem:
Input: A positive integer number a
Output: A positive integer number s
Let s = 0
While a > 0
Let s = s + (a mod 10)
Let a = a/10
In this algorithm, the word while indicates a loop,
meaning that following indented steps are repeated
as long as the loop condition of a > 0 holds. Also, note the operation a/10 is
integer division, meaning
that the fractional portion of the result is simply dropped (e.g. 10/4 = 2).
(a) What is the output of the algorithm if the input is a
= 432765891
Answer. First, we observe a few iterations of the while-loop, to understand what
the pseudo-code
given is doing:
From these first iterations, we can observe that digits
originally in a are added one by one into
s. After the number '4' in a is added, a = 0. This terminates the algorithm ,
given the condition
a > 0 in the while-loop. The value of s obtained is:
s = 4 + 3 + 2 + 7 + 6 + 5 + 8 + 9 + 1 = 45
(b) One important characteristic of an algorithm is
efficiency. Typically, this is measured by the
number of operations the algorithm performs. How many additions does this
algorithm perform
given the input of some positive integer a? Express your answer as a function of
a.
Answer. There is one iteration of the while-loop per digit originally in a.
Thus, to answer the
question we should study the structure of the number given in a. In our example
a = 432765891,
which can be written as:
After the first iteration, we have:
Notice that after the iteration, the exponents decreased
by one, and the term 1 × 100 disappeared.
With this in mind, let's take a look at the value of a at the last iteration:
a = 4 × 100
The exponent went from 8 in 4 ×
108, to 0 in 4 × 100. Therefore, the while-loop
repeated exactly
9 times. Generalizing to any number given in a, this means that if we know the
exponent of the
maximum power of 10 that fits in a, and we add 1 to such exponent, we know how
many times
the while-loop repeats. For example, if a = 312 = 3 ×
102 +1 × 101 +2 × 100, now we
expect the
while-loop to repeat 3 times .
The value of this exponent can be obtained computing
In this expression,
gives the
largest integer smaller than or equal to x (i.e.,
).
Now we conclude that the
number of additions performed by the algorithm is
Both
and number of digits in a are reasonable full-credit answers to this question,
at this point in your career. As we start discussion big-O notation, and
especially when you take
the algorithms class, you find that instructors expect the answer using the
logarithm.
Prev | Next |