Midterm 1. Name: TA: U.C. Berkeley CS70 : Algorithms Midterm 1 Lecturers: Anant Sahai & Christos Papadimitriou October 15, 2008

Similar documents
Discrete Mathematics and Probability Theory Summer 2015 Chung-Wei Lin Midterm 1

Prob. 1 Prob. 2 Prob. 3 Total

Midterm 1. Your Exam Room: Name of Person Sitting on Your Left: Name of Person Sitting on Your Right: Name of Person Sitting in Front of You:

Discrete Mathematics and Probability Theory Summer 2014 James Cook Midterm 1

CS 70 Discrete Mathematics and Probability Theory Fall 2016 Seshia and Walrand Midterm 1 Solutions

Discrete Mathematics and Probability Theory Spring 2015 Vazirani Midterm #2 Solution

Discrete Mathematics and Probability Theory Summer 2014 James Cook Midterm 1 (Version B)

Discrete Mathematics and Probability Theory Fall 2014 Anant Sahai Homework 5. This homework is due October 6, 2014, at 12:00 noon.

Today. Wrapup of Polynomials...and modular arithmetic. Coutability and Uncountability.

2. Polynomials. 19 points. 3/3/3/3/3/4 Clearly indicate your correctly formatted answer: this is what is to be graded. No need to justify!

Midterm 1. Total. CS70 Discrete Mathematics and Probability Theory, Spring :00-9:00pm, 1 March. Instructions:

Discrete Mathematics and Probability Theory Spring 2014 Anant Sahai Midterm 1

MATH 2200 Final Review

Midterm 2. Your Exam Room: Name of Person Sitting on Your Left: Name of Person Sitting on Your Right: Name of Person Sitting in Front of You:

Discrete Mathematics and Probability Theory Fall 2017 Ramchandran and Rao Midterm 2 Solutions

1 Recommended Reading 1. 2 Public Key/Private Key Cryptography Overview RSA Algorithm... 2

Jong C. Park Computer Science Division, KAIST

COT 2104 Homework Assignment 1 (Answers)

Name: Mathematics 1C03

CS280, Spring 2004: Prelim Solutions

Number theory (Chapter 4)

Prob. 1 Prob. 2 Prob. 3 Total

Discrete Mathematics and Probability Theory Fall 2014 Anant Sahai Midterm 1

Discrete Mathematics and Probability Theory Fall 2014 Anant Sahai Midterm 2

ICS141: Discrete Mathematics for Computer Science I

Lecture 21: Midterm 2 Review.

EECS 70 Discrete Mathematics and Probability Theory Fall 2015 Walrand/Rao Final

Discrete Mathematics and Probability Theory Fall 2013 Vazirani Note 6

Modular Arithmetic Inverses and GCD

Reed-Solomon code. P(n + 2k)

Math 299 Supplement: Modular Arithmetic Nov 8, 2013

All variables a, b, n, etc are integers unless otherwise stated. Each part of a problem is worth 5 points.

University of Regina Department of Mathematics & Statistics Final Examination (April 21, 2009)

CSC 125 :: Final Exam May 3 & 5, 2010

Beautiful Mathematics

University of Ottawa CSI 2101 Midterm Test Instructor: Lucia Moura. March 1, :00 pm Duration: 1:15 hs

In fact, 3 2. It is not known whether 3 1. All three problems seem hard, although Shor showed that one can solve 3 quickly on a quantum computer.

MATH 363: Discrete Mathematics

Elementary Number Theory MARUCO. Summer, 2018

Mathematics of Cryptography

Review Sheet for the Final Exam of MATH Fall 2009

Solutions to Practice Final

Lecture 5: Arithmetic Modulo m, Primes and Greatest Common Divisors Lecturer: Lale Özkahya

Discrete Mathematics and Probability Theory Summer 2015 Chung-Wei Lin Midterm 2

Senior Math Circles Cryptography and Number Theory Week 2

Discrete Mathematics for CS Spring 2007 Luca Trevisan Lecture 11. Error Correcting Codes Erasure Errors

Discrete Mathematics for CS Fall 2003 Wagner MT2 Soln

Math 430 Midterm II Review Packet Spring 2018 SOLUTIONS TO PRACTICE PROBLEMS

Basic Proof Examples

MAS114: Exercises. October 26, 2018

Homework #2 solutions Due: June 15, 2012

Encryption: The RSA Public Key Cipher

Solutions to Practice Final 3

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Discussion 6A Solution

Midterm 1 for CS 170

Homework 1 Submission

LECTURE 1. Logic and Proofs

University of New Mexico Department of Computer Science. Midterm Examination. CS 261 Mathematical Foundations of Computer Science Spring, 2010

Private Key Cryptography. Fermat s Little Theorem. One Time Pads. Public Key Cryptography

Proof by Contradiction

CPSC 467b: Cryptography and Computer Security

Part I: Discrete Math.

Definition 6.1 (p.277) A positive integer n is prime when n > 1 and the only positive divisors are 1 and n. Alternatively

Cosc 412: Cryptography and complexity Lecture 7 (22/8/2018) Knapsacks and attacks

Number Theory A focused introduction

Mathematics 220 Midterm Practice problems from old exams Page 1 of 8

THE RSA ENCRYPTION SCHEME

Ma/CS 6a Class 4: Primality Testing

Number Theory Homework.

Lecture 1: Introduction to Public key cryptography

Discrete Mathematics and Probability Theory Fall 2014 Anant Sahai Note 7

3x + 1 (mod 5) x + 2 (mod 5)

Practice Midterm Exam Solutions

Some Basic Logic. Henry Liu, 25 October 2010

For all For every For each For any There exists at least one There exists There is Some

Midterm 2 for CS 170

2007 Marywood Mathematics Contest

MATH 201 Solutions: TEST 3-A (in class)

Math 13, Spring 2013, Lecture B: Midterm

Do not start until you are given the green signal

OWO Lecture: Modular Arithmetic with Algorithmic Applications

DISCRETE MATH: FINAL REVIEW

Lecture 7 Feb 4, 14. Sections 1.7 and 1.8 Some problems from Sec 1.8

Computer Science Foundation Exam

Public-Key Cryptosystems CHAPTER 4

Continuing discussion of CRC s, especially looking at two-bit errors

CPSC 467b: Cryptography and Computer Security

Simple Math: Cryptography

CS 355: Topics in Cryptography Spring Problem Set 5.

Section 3.1: Direct Proof and Counterexample 1

Solutions to the Midterm Test (March 5, 2011)

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Note 8

Math.3336: Discrete Mathematics. Mathematical Induction

18.310A Final exam practice questions

Proof worksheet solutions

1. (16 points) Circle T if the corresponding statement is True or F if it is False.

Fall 2017 Test II review problems

NUMBER THEORY AND CODES. Álvaro Pelayo WUSTL

Homework 4 for Modular Arithmetic: The RSA Cipher

1. Consider the conditional E = p q r. Use de Morgan s laws to write simplified versions of the following : The negation of E : 5 points

Transcription:

U.C. Berkeley CS70 : Algorithms Midterm 1 Lecturers: Anant Sahai & Christos Papadimitriou October 15, 2008 Name: Midterm 1 TA: Answer all questions. Read them carefully first. Be precise and concise. The number of points indicate the amount of time (in minutes) each problem is worth spending. Write in the space provided, and use the back of the page for scratch. Good luck! 1

Problem 1 (Short questions and answers, 50 points total) 1. (3 points) You are proving by contrapositive (not by contradiction) the statement If x is prime, then x + 7 is not a prime. You start your proof as follows (circle one option from each set): Suppose that { x / x + 7 } { is / is not } a prime. Solution: The contrapositive of A B is B A, so in this case that is Suppose that x + 7 is prime... 2. (3 points) Now suppose that, instead, you want to prove this statement by cases. Which two cases would you consider? Solution: With a proof by cases we are assuming the hypothesis x is prime and trying to prove the consequence x + 7 is not prime. The cases that are most conducive to a proof are: Case 1) x is an even prime and Case 2) x is an odd prime. [The proof then proceeds: if x even prime, then x = 2 so x + 7 = 9 is not prime. If x an odd prime, the x + 7 is the sum of two odd numbers, so it is even and therefore divisible by 2. It is bigger than 2, so it cannot be prime. 3. (8 points) Suppose that P (x, y) is the following property of integers x and y: x = y+y or x = y+y+1. For each of these statements state if it is true or false. Give a very brief explanation in each case. x yp (x, y) Solution: True. x = 2 and y = 1 satisfy P (2, 1) since 2 = 1 + 1 so these x and y witness the existential quantifiers. x yp (x, y) Solution: False. For any x, we have P (x, x + 10) since no integer x satisfies x = x + 10 + x + 10 or x = x + 10 + x + 10 + 1. Thus, no x can exist to make P (x, y) true for all y since we have provided a counterexample for each possible x. x yp (x, y) Solution: True. Given x, if x is even, choose y = x/2. Then x = y + y. If x is odd, choose y = (x 1)/2. Then x = y + y + 1. In both cases y is an integer and P (x, y) holds, so we have shown that for every x there is a y to make P (x, y) true. x yp (x, y) Solution: False. Again, for any x we have P (x, x + 10), so P (x, y) is not true for all x and all y. This can also be seen from the falsehood of the second statement: if the current statement were true, then in particular for x = 1 we would have yp (1, y) and so x = 1 would make the second statement true, a contradiction. y xp (x, y) Solution: True. Given y, set x = y + y. Then P (y + y, y) is true by definition. So for every y we are able to find a corresponding x to make P (x, y) true. 2

4. (4 points) Write the negation of the following statement, y x [x = y + y or x = y + y + 1] so that there are no negation signs (so use as appropriate). Solution: y x[x = y + y x = y + y + 1] y x [x = y + y x = y + y + 1] y x[x y + y x y + y + 1] 5. (6 points) For each of the following integers find its inverse modulo 35, or state that it does not exist (explain briefly why it doesn t exist). 4 Solution: 4 9 = 36 1 mod 35 so 9 is the inverse of 4 modulo 35. 14 Solution: gcd(14, 35) = 7 1 so therefore 14 does not have an inverse modulo 35. 34 Solution: 34 1 mod 35 so since ( 1) 2 = 1 we know that 1 = 34 is the inverse of 34 modulo 35. In other words, 34 is its own inverse. 6. (3 points) What is the gcd of the integers 28 and 5? Find integers (possibly negative) x and y such that 28x + 5y = 2, or state that no such integers exist. Explain briefly. Solution: Run the extended gcd algorithm to find d = gcd(28, 5) and also x, y such that 28x +5y = d. (d, x, y ) = egcd(28, 5) (d 1, x 1, y 1 ) = egcd(5, 3) (d 2, x 2, y 2 ) = egcd(3, 2) (d 3, x 3, y 3 ) = egcd(2, 1) (d 4, x 4, y 4 ) = egcd(1, 0) (d 4, x 4, y 4 ) = (1, 1, 0) (d 3, x 3, y 3 ) = (d 4, y 4, x 4 y 4 2 1 ) = (1, 0, 1) (d 2, x 2, y 2 ) = (d 3, y 3, x 3 y 3 3 2 ) = (1, 1, 1) (d 1, x 1, y 1 ) = (d 2, y 2, x 2 y 2 5 3 ) = (1, 1, 2) (d, x, y ) = (d 1, y 1, x 1 y 1 28 5 ) = (1, 2, 11) So 28 2 + 5 ( 11) = 1. Multiply through by 2 to get 28 4 + 5 ( 22) = 2, which means x = 4 and y = 22 work. 7. (3 points) How many polynomials p(x) of degree 4 modulo 7 are there such that p(1) = p(2) = p(3) = 0 mod 7? Solution: A polynomial of degree 4 is determined uniquely by 5 values. Since p(1), p(2), and p(3) are already set to 0, we have freedom in determining p(4) and p(5). For each pair of values x and y we assign to p(4) and p(5) we get a unique polynomial of degree 4, so the number of polynomials equals the number of pairs (x, y) we can find modulo 7. We can choose x and y independently and they come from the seven numbers {0, 1, 2, 3, 4, 5, 6} which are the unique classes modulo 7. So there are 7 7 = 49 polynomials of degree 4 that meet our specified conditions. 3

8. (4 points) My packets are integers between 1 and 1,000,000, and they are labeled so I know which were dropped. If I want to encode 10 packets by polynomials and I know that only 3 will be dropped, what degree polynomial should I use? And modulo what kind of number? Solution: We want to send n = 10 packets, but since k = 3 packets will be dropped with every transmission, we have to send n + k = 13 packets to assure the information will get through. The recipient will get 10 of the 13 packets we sent, and he/she has to use this to recover the remaining 3 packets. He/she can do this because 10 points determine a unique polynomial of degree 9. So we want to use a polynomial of degree 9 to encode our packets. Furthermore, we always work modulo a prime number that is sufficiently big. How big? It has to be bigger than the number of packets we want to send (13), as well as bigger than the largest possible value a packet can have (1,000,000). So we need to work modulo a prime number greater than 1 million. 9. (4 points) Is 0011 a de Bruijn sequence of order 2? How about 0101? Explain briefly. Solution: 0011 is a de Bruijn sequence, and 0101 is not. Since if we wrap 0011 around, we can find all possible two bit strings 00, 01, 10, 11 exactly once in it. 10. (6 points) A graph has 6 nodes, 9 edges, and no triangles. Can it be planar? Explain briefly. Solution: Remember that planar graph must satisfies Euler s formula v + f = e + 2. Suppose this graph is a planar, since there is no triangles, every face consists of four or more edges. And since every edge is shared by two faces we can get that f 2e 4. Substituting this back to Euler s formula, we can get 2v + e 2e + 4 which is 2v e + 4. Now we have 6 nodes and 9 edges, 2 6 9 + 4, a contradiction! 11. (3 points) How many different ways are there to seat a class of 140 into a lecture room with 160 seats? (Two seatings are considered different if there is a student who sits in a different chair in the two.) Factorials are OK. Solution: We can first choose 140 seats out of the 160 seats without ordering and then seat 140 students with ordering. Therefore, there are ( ) 160 140! = 160! 140 20! ways. 12. (3 points) How many bitstrings of length 160 are there that have 140 ones? Solution: 140 of the 160 bits are one, and 20 of the 160 are zero. So we can choose 140 bits out of the 160 bits and set them to 1. Or equivelently choose 20 bits out of the 160 bits and set them to 0. Therefore, there are ( ) 160 = 140 different bitstrings. ( ) 160 20 13. ( 1 2 points extra credit) What is (x a) (x b) (x c) (x z)? (Be very brief.) Solution: 0 because (x x) is one of these terms. 4

Problem 2 (10 points) Prove by induction that, for any integer n 1, n k k! = (n + 1)! 1. Basis: Solution: For n = 1, 1 k k! = 1 1! = 1 = (1 + 1)! 1. Induction hypothesis: Solution: Assume that for some n = l 1, l k k! = (l + 1)! 1. Induction step: Solution: For n = l + 1, l+1 k k! = (l + 1) (l + 1)! + l k k! by spliting the sum = (l + 1) (l + 1)! + [(l + 1)! 1] by induction hypothesis = (l + 1 + 1) (l + 1)! 1 by collecting the first two terms = (l + 2) (l + 1)! 1 = (l + 2)! 1. Therefore, by induction, n 1, n k k! = (n + 1)! 1. 5

Problem 3 (10 points) A: abc B: abc C: acb a: ABC b: BCA c: CBA Consider the preferences by the three boys (small letters) and girls (caps) above. Which of the following matchings are stable and which are unstable? If unstable, give a rogue pair. If stable, state whether the matching is man-optimal and/or woman-optimal. 1. a-a, b-b, c-c Solution: This pairing is stable. This is because there is no pair who mutually prefers each other over their assigned partners. Also, this pairing happens to be both man-optimal and woman-optimal. To see this, we first remember that running the TMA always gives us a stable pairing which is man-optimal. This algorithm finishes with one iteration, as shown below: a b c 1 A B C Next, we remember that if we run the reverse-tma algorithm (when the women propose to the men), we always get a stable pairing which is woman-optimal. The algorithm finishes in two iterations, as shown below: 1 2 A a a B a b C a c In both cases we end up with the matching in question, so it is stable, man-optimal, and womanoptimal. 2. a-b, b-a, c-c Solution: This pairing is unstable. This is because there is a rogue pair: (a, A). They are a rogue pair because a prefers A more than his partner B and A also prefers a more than her partner b. 3. a-a, b-c, c-b Solution: This pairing is unstable. This is because there is a rogue pair: (b, B). They are a rogue pair because b prefers B more than his partner C and B also prefers b more than her partner c. The same argument can be used to show that (c, C) is also a rogue pair. 6

Problem 4 (10 points) Three families with three people in each, call them {A, B, C}, {D, E, F }, {G, H, J}, share an electronic safe deposit box. They want the box to open only if at least two members from each of at least two families are present. For example, if A, B, D, E are present then the box should open, but not if A, B, C, E, G are present. Explain how this can be done. How many polynomials and of which degree would you use? (Hint: look for a hierarchical version of secret sharing.) The idea here is that we want to make some kind of hierarchical scheme - we want two families to be able to unlock the secret of the safe, and we want two family members in each family to be to unlock the secret of it s family (which is then used to unlock the safe). To accomplish this, we are going to use polynomials in some kind of hierarchical sense. To begin, suppose that the secret to opening the safe is to know some secret code s. Since we want any two of the three families to be able to recover it, let s encode this into some one dimensional polynomial such that p(x) such that p(0) = s. We then assign the value p(1) to family 1, p(2) to family 2 and p(3) to family 3. But wait! We do not want to just give the secret family values to all the members of a particular family - then any two people would be able to open the safe, as long as they are from different families. Instead, for each family i, we encode it s secret value p(i) in another one dimensional polynomial q i (x) such that q i (0) = p(i). We then give q i (1), q i (2), and q i (3) the first, second, and third member of that family respectively. So now we see that we have a scheme where we need at least two members from each of at least two families are present. We need two families present in order to recover the secret code of the safe from their secret family keys, and we need two people from each family in order to recover their secret family keys. An important thing to note is that when finding polynomials to fit this scheme, it is important to start by first finding p(x), instead of first finding q 1 (x), q 2 (x), and q 3 (x). The reason is that if we do it the other way, there is no guarantee that q 1 (0), q 2 (0), and q 3 (0) can all be points on a linear function (for instance, if it were (1, 0, 1)). 7

Problem 5 (15 points) In RSA, p = 5, q = 7. 1. How many legitimate choices for e are there? Solution: In RSA, the private exponent e must be coprime with (p 1)(q 1). Here, (p 1)(q 1) = 4 6 = 24 = 2 3 3. So the gcd of e and (p 1)(q 1) is 1 is and only if e is not divisible by either 2 or 3. The admissible values for e are 1, 5, 7, 11, 13, 17, 19, and 23, from which we exclude 1 (if e = 1 then the message is not hidden at all!), so there are 7 possibilities for e. 2. Choose e = 17, and give the corresponding d. Solution: d is the inverse of e modulo (p 1)(q 1) = 24. Running the extended-gcd algorithm on x = 24 and y = 17 gives the following x y a b 24 17 5 7 17 7 2 5 7 3 1 2 3 1 0 1 1 0 1 0 From this computation we get the relation 5 24 7 17 = 1, or equivalently 17 ( 7) = 1 + ( 5) 24 which implies that 17 ( 7) 1 mod 24: the inverse of 17 mod 24 is 7, which is also 7 + 24 17 mod 24. The decoding key is therefore d = 17. 3. What is the encoding of the message x = 2? Solution: By definition, the encoding of x = 2 is c = x e mod pq = 2 17 mod 35 = (2 8 mod 35) 2 2 mod 35 = (256 mod 35) 2 2 mod 35 = 11 2 2 mod 35 = 242 mod 35 = 32 4. What is 100 100 mod 35? Solution: The extension of Fermat s little theorem says that if p and q are two distinct primes both bigger than 2, then for any a we have that a (p 1)(q 1) 1 mod pq. In our case p = 5 and q = 7, so we have that 8

a 24 1 mod 35 for any a. Take a = 100, then 100 24 1 mod 35, and elevating to the power 4 we get that (100 24 ) 4 1 4 1 mod 35, or equivalently 100 96 1 mod 35. Therefore 100 100 mod 35 = 100 96 100 4 mod 35 = 1 (100 mod 35) 4 mod 35 = 30 4 mod 35 = (30 2 mod 35) 2 mod 35 = (900 mod 35) 2 mod 35 = 30 2 mod 35 = 30 9