What is a Qubit?

qc/basics qc/math

A classical bit is always definitely 0 or 1. A qubit is a vector in a 2-dimensional complex vector space, written in ket notation:

where and — kets are just column vectors, and are its amplitudes.

Key insight: “0 and 1 at once” is a misleading pop-science shorthand. A qubit isn’t secretly holding two classical values for free — it holds one pair of complex amplitudes that determine probabilities when you measure it (see Measurement and Collapse), and those amplitudes can interfere — add or cancel — in ways plain probabilities never can. That interference, not “parallel storage,” is the actual resource quantum algorithms exploit. See Superposition for what that means in practice.

from qiskit.quantum_info import Statevector
 
psi = Statevector([0.6, 0.8])   # alpha=0.6, beta=0.8 — must satisfy |alpha|^2+|beta|^2=1
psi.probabilities()             # array([0.36, 0.64]) — P(0), P(1)

The normalization constraint is why arbitrary pairs of numbers don’t make a valid qubit state — Qiskit enforces it.

Bras and inner products

A ket is a column vector; its bra is the conjugate-transpose row vector. Pairing a bra with a ket gives the inner product: if , else , for computational basis states — the formal statement that and are orthonormal. More generally gives the overlap (amplitude) between two states. The reverse pairing, a ket times a bra like , is an outer product — a matrix, not a number — and is exactly how operators like the Pauli matrices can be built up from basis states.

Self-Check

  • Why is “a qubit is a 0 and a 1 at the same time” a misleading way to describe ?
  • What does the normalization constraint actually guarantee, physically?
  • What does Measurement and Collapse let you extract from and , and what can it never give you directly?
  • What’s the difference between a bra and a ket, and what does pairing them (in each order) give you?