The Tensor Product and Multi-Qubit States
The tensor product combines individual qubit spaces into a joint space whose dimension grows exponentially with the number of qubits.
Combining systems
The state space of a composite quantum system is the tensor product of the parts' spaces. Two qubits, each two-dimensional, combine into a four-dimensional space; n qubits into a 2^n-dimensional space. This exponential scaling is the source of both quantum computing's power and the difficulty of simulating it classically.
Basis states
The tensor product of |a> and |b> is written |a> tensor |b>, or just |ab>. For two qubits the computational basis is |00>, |01>, |10>, |11>. As a vector, |01> is the four-entry column with a one in the second slot. The Kronecker product gives the explicit coordinates.
import numpy as np
zero = np.array([1,0]); one = np.array([0,1])
print(np.kron(zero, one)) # |01> = [0 1 0 0]
print(np.kron(one, one)) # |11> = [0 0 0 1]
Product versus entangled states
A state that factors as (a|0>+b|1>) tensor (c|0>+d|1>) is a product state — the qubits are independent. Most states in the joint space do not factor; those are entangled. The tensor product provides the arena in which entanglement can exist, and product states are a measure-zero slice of it.
Operators on subsystems
A gate acting on qubit 1 alone is written U tensor I, applying U to the first factor and the identity to the second. Two-qubit gates like CNOT are full 4x4 matrices that generally do not factor, which is precisely how they create entanglement between previously independent qubits.
The scaling problem
A classical description of an n-qubit state needs 2^n complex amplitudes. At 50 qubits that exceeds a petabyte; beyond about 50 qubits exact state-vector simulation on the largest supercomputers becomes infeasible. This is why building real quantum hardware, rather than simulating it, is worthwhile — and why classical simulation of processes like plasma dynamics motivates exploring quantum methods.