Classical Error Correction Basics
The repetition-code idea, and exactly where it breaks down for qubits
By the end of this topic you'll be able to
Classical error-correcting codes work by adding controlled redundancy: a message is encoded into more bits than it strictly needs, in a way chosen so that a small number of flipped bits can be detected and reversed. The simplest example, the repetition code, stores one bit three times — 0 becomes 000, 1 becomes 111.
If noise flips a single one of the three copies, a straightforward majority vote recovers the original value: two of the three copies still agree, and as long as errors are rare and independent, that majority is almost certainly correct.
It is tempting to assume quantum error correction could work by the same recipe — copy the qubit's state three times, then take a majority vote at the end — but two independent facts rule this out completely.
First, the no-cloning theorem forbids copying an unknown quantum state in the first place: there is no gate implementing |ψ⟩ → |ψ⟩|ψ⟩|ψ⟩ for an arbitrary |ψ⟩, so the repetition code's very first step is already unavailable.
Second, even setting that aside, a majority vote would require directly measuring the qubits in order to compare them — and measurement collapses superposition, destroying precisely the quantum information the whole procedure was meant to protect.
Quantum error correction therefore has to solve a strictly harder problem than its classical counterpart: detect and correct errors on a qubit's state without ever directly measuring, and therefore collapsing, the information stored in it, and without ever making a literal copy of it.
That sounds close to paradoxical, but Preskill's lecture notes show it is entirely solvable: encode one logical qubit across several physical qubits in an entangled way, and measure only carefully chosen joint properties of the block, called syndromes, which reveal whether and where an error occurred without ever revealing the logical qubit's actual state — the construction taken up in the next topic.
Try It Yourself
A bit was encoded as 111 using the repetition code. Noise flips one copy, so the received codeword is 101. What does majority vote recover, and does it matter which copy was flipped?
- 1The received codeword 101 has two 1s and one 0 — a majority vote counts votes for each value: two votes for '1', one vote for '0'.
- 2Majority vote outputs '1', correctly recovering the original bit despite the flip.
- 3This works regardless of which of the three positions got flipped (110, 101, or 011 would all still majority-vote to 1) — the code corrects a single error in any of its three copies, not just a specific one.
Majority vote recovers '1' — the original bit — correcting the single flipped copy regardless of which of the three positions it occurred in.
Reference
| Classical repetition code | Majority vote corrects a single bit flip | |
| No-cloning theorem | Rules out the classical copy-and-vote recipe for qubits | |
| Measurement collapse | Rules out direct majority-vote comparison of qubits |
Quick Check
Why can't you protect a qubit by simply making three identical copies and majority-voting, the way classical repetition codes do?
What must quantum error correction do differently from its classical counterpart?