The bit code circuit creates an error channel \(E_{Bit}\) where one of the qubits is flipped and demonstrates how it can be caught and rectified.
The error invoked by the channel should be corrected.
The bit code circuit creates an error channel \(E_{Phase}\) where one of the qubits is phase flipped and demonstrates how it can be caught and rectified.
The error invoked by the channel should be corrected.
The Shor Error Code circuit creates an error channel \(E\) where the qubit state for \(q_8\) is corrupted and demonstrates how it can be caught and rectified.
The error invoked by the channel should be corrected.
Superdense Coding allows a sender to transfer two classical bits to a recipient using only one qubit. In this example, we send two bits encoded on \(q_4\) and \(q_3\) to a recipient on \(q_1\) and \(q_0\).
You can adjust the bits to send above.
You can verify that the bits have been sent by checking that qubits \(q_1\) and \(q_0\) have the correct values of the bits that were sent.
In Quantum Teleportation we can imagine we have a qubit \(q_2\) (belonging to Alice) whose information we wish to transmit exactly to Bob. If Alice and Bob each share one half of an entangled pair (\(q_0\) and \(q_1\)) then we can transmit the quantum state \(q_2\).
By clicking on the quantum state for \(q_2\) above you can edit the information to be sent.
The first two operations create an entangled bell pair. If we imagine the first and second qubits are physically located with Alice, and the third qubit \(q_0\) is physically located with Bob, we can see below that the quantum state has been transferred to Bob.
The Deutsch-Jozsa Algorithm takes a function which maps from \(\{1,0\}^n \rightarrow \{1,0\}\), and tells us whether it is constant (outputs zero or one for all inputs) or balanced (outputs zero for half the input domain, one for the other half).
You can select whether the function encoded in \(U_f\) is balanced or constant using the dropdown box above.
After the algorithm completes has concluded the decimal value of the measured qubits \(q_3q_2q_1\) can be considered indicative of the result. The fourth qubit \(q_0\) is trash.
If the result is zero (i.e. if all three qubits are zero) the function is constant. Any other result means it is balanced.
Shor's Algorithm finds the prime factors of an integer \(N\). The algorithm has two parts, a classical part and a quantum part.
The classical part reduces the factoring problem to a quantum order finding problem. A different quantum circuit is generated for each iteration of the algorithm.
Enter the number you wish to factor above. We present the results of each iteration, including the classical calculations (not shown on the circuit).
You can play back the circuit to see the quantum part in action and advance through iterations using the Next button.
Each iteration produces of the algorithm produces a random number \(a < N\). We verify that \(gcd(a,N)\neq{1}\) (if it isn't, we've found a factor trivially). A quantum circuit is generated on each iteration of the algorithm which attempts to find the period of \(f(x)=a^x mod(N)\).
Grover's Algorithm performs a search over an unordered set of \(N\) items. If we have a function \(f(x)\) which returns 1 if and only if the correct value is searched for, we can use Grover's Algorithm to find this value quicker than a classical algorithm.
You can adjust the value being searched for by picking from the Search box above.
After the quantum search has concluded the decimal value of the measured qubits \(q_3q_2q_1\) can be considered the result. The fourth qubit \(q_0\) is junk. This should correspond to the value you've searched for.
If you watch the basis state circles below, you can see how the algorithm works by amplifying the more likely results.