Quantum entanglement is the basic resource of quantum computation. You know, entanglement, the term introduced in that paper by none other than Schrödinger. Well, to be honest, there he called it Verschränkung, but then he himself translated into English as entanglement.
For some reason, every single popular article that mentions entanglement adds the clichéd phrase "what Einstein called spooky action at a distance" as way to make it sound unnatural. Let's settle this once and for all. Entanglement is our basic tool. We understand it, we love it, we use it and that is all. Einstein might be a bit spooky now, but nobody that programs quantum computers is spooked by it.
The cat is the best anarchist. - Ernest Hemingway
Let's begin with a brief explanation of the controlled-not gate. The controlled-not gate is a two qubit gate that changes the state of a target qubit given the state of a control qubit. If the control qubit is in thestate, nothing happens. If it's in the state, an X gate is applied to the target qubit.
What happens if our qubits are not in the or state, but are in some unmeasured quantum state? The qubits are now entangles and measuring either of them affects the outcome of the other.
This is the basic circuit to create an entangled state. It starts with two qubits, does a Hadamard gate to the first, then a controlled-not to both. The the outcome is the entangled state , also called a Bell state. And that's it! Well, just one more thing. The last step of the circuit measures each qubit separately. Each time you run it, you can see how the outcome might be random, but both bits are always correlated to the same outcome.
Go ahead and run some code. The project here will allow you to create the same basic entangling circuits in many different quantum programming languages!