A CNOT gate flips the target bit when the control bit is set to $|1\rangle$. Thus, defining it by $|c\rangle |t\rangle \rightarrow |c\rangle |t \oplus c\rangle $ makes sense to me.

On the other hand, its matrix representation

$$\begin{pmatrix}1 & 0 & 0 &0 \\ 0 & 1 & 0 &0 \\ 0& 0 & 0&1 \\ 0 & 0 & 1 & 0\end{pmatrix}$$

doesn't seem right, because if I multiply it by a vector

$$\begin{pmatrix}a \\ b \\ c \\ d \end{pmatrix}$$

representing the control bit ($a|0\rangle + b|1\rangle$) and the taget bit ($c|0\rangle + d|1\rangle$), I always get

$$\begin{pmatrix}a \\ b \\ d \\ c \end{pmatrix}$$

which means I am flipping the target bit regardless the value of control bit.

Can someone please explain what is wrong with my understanding here?


The vector you're trying to apply the gate to is wrong.

The matrix representation lives on the two-qubit space $\mathbb{C}^4$ with basis $\lvert 00\rangle,\lvert 01\rangle,\lvert 10\rangle,\lvert 11\rangle$, where the first number is for the control qubit and the second one for the target. So for your definition of $a,b,c,d$ the vector you have to apply the matrix to is actually $(a\lvert 0\rangle + b\lvert 0 \rangle)\otimes (c\lvert 0 \rangle + d\lvert 1 \rangle)$ which would be represented by the vector $(ac,ad,bc,bd)$.

In more detail: Any state of the two-qubit system can be written as $$ \lvert \psi \rangle = \alpha \lvert 00\rangle + \beta \lvert 01\rangle + \gamma \lvert 10\rangle + \delta \lvert 11\rangle$$ where the states are $\lvert ij\rangle = \lvert i\rangle_\text{control}\otimes \lvert j\rangle_\text{target}$. When you have the control qubit in the general state $a\lvert 0\rangle_\text{control} + b\lvert 1\rangle_\text{control}$ and the target in $c\lvert 0\rangle_\text{target} + d\lvert 1\rangle_\text{target}$, then this corresponds to $\alpha = ac$, $\beta = ad$, $\gamma = bc$ and $\delta = bd$, since the full two-qubit state is $(a\lvert 0\rangle_\text{control} + b\lvert 1\rangle_\text{control})\otimes (c\lvert 0\rangle_\text{target} + d\lvert 1\rangle_\text{target})$.

  • $\begingroup$ hello @ACuriousMind. What do you mean by "the first number is for the control qubit and the second one for the target" ? $\endgroup$ – Hilder Vitor Lima Pereira Dec 11 '16 at 15:27
  • 1
    $\begingroup$ @Vitor I mean that, for instance, $\lvert 01\rangle$ is the state where the control qubit is in the state $\lvert 0\rangle$ and the target qubit is in the state $\lvert 1\rangle$ $\endgroup$ – ACuriousMind Dec 11 '16 at 15:30
  • $\begingroup$ But is has a value $ad$ associated with it, so does it mean the control qubit is $ad|0\rangle$ and the target is $ad|1\rangle$ $\endgroup$ – Hilder Vitor Lima Pereira Dec 11 '16 at 15:36
  • 1
    $\begingroup$ @Vitor I have made the answer a bit more explicit. $\endgroup$ – ACuriousMind Dec 11 '16 at 15:43
  • $\begingroup$ I understand this tensor product language. I think my problem is thinking on separated bits on the component quantum spaces... So, if the control bit is set to zero, the state will be $|\psi_0 \rangle = \alpha |00\rangle + \beta|01\rangle $ and when it is set to one, we have $|\psi_1 \rangle = \gamma |10\rangle + \delta |11\rangle$, right? $\endgroup$ – Hilder Vitor Lima Pereira Dec 11 '16 at 16:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.