CSE 599Q: Homework #1 (Review)

Due: Mon, Jan 17 @ 11:59pm
Gradescope Link

1. Universal gates for classical circuits [12 points]

  1. Show that any Boolean function can be computed by a Boolean circuit using the following set of logic gates: -bit AND, -bit OR, and NOT.

    [Hint: Disjunctive normal form]

  2. Show that any Boolean function can be computed by a Boolean circuit consisting only of NAND gates. (You may allow NAND gates with one of the inputs hard-coded to be 0 or 1.)

  3. Show that there are infinitely many Boolean functions that cannot be computed by a Boolean circuit using only AND and OR gates.

    [Hint: A Boolean function is called monotone if flipping any input bit from 0 to 1 (and leaving the rest fixed) cannot change the value of the output from 1 to 0.]

2. Simulating a biased coin [15 points]

Suppose that your favorite programming language can only access random numbers via an operation called that returns 1 with probability and 0 with probability . Distinct calls to are independent random trials.

  1. Show that it is impossible to exactly simulate if your program only has access to operations.

  2. On the other hand, show that it is possible to use operations to approximately simulate : Give pseudocode for a (randomized) function with outputs and such that

  3. Show that it’s possible to do something slightly stronger: Give pseudocode for a (randomzied) function with outputs such that and

3. Unitary matrices [8 points]

Let be a complex matrix with the property that for all Prove that is a unitary matrix, i.e., , where denotes the conjugate transpose of .

[Hint: Recall the singular value decomposition of a matrix.]

4. Bras and kets [8 points]

Consider two unit vectors and in . Then is a complex matrix.

  1. Explicitly work out the entries of when and .

  2. Consider the matrix . Describe geometrically the transformation .

  3. Describe geometrically the transformation , where is the identity matrix, and show that is unitary.

  4. Suppose that and are orthonormal bases in . Use the bra-ket notation to define a unitary matrix that transforms one bases into the other, and justify your definition.