Launch the interactive walkthrough to discover each component, including the 3D Q-Sphere Lab & Python in Colab.
Understand how multiple qubits assemble into quantum registers, and master little-endian vs big-endian bit ordering.
Interactive 3D state vector exploration, unitary transformation gates, and Born rule collapse for Topic 6.2
| Symbol / Term | Meaning | Beginner Interpretation |
|---|---|---|
| Register width (qubit count) | The number of quantum wires grouped together | |
| Total basis states | Exponential dimension: 2 qubits = 4 states, 3 qubits = 8 states, qubits = states | |
| Binary basis state bitstring | Standard integer encoded as binary (e.g., , , , ) | |
| State probability amplitude | Complex number whose squared magnitude gives real probability |
Evaluating a 2-qubit register (n = 2, 2^2 = 4 states) in state |Οβ© = 0.5|00β© + 0.5|01β© + 0.5|10β© + 0.5|11β©:
Result: A 2-qubit register holds all 4 numbers (0, 1, 2, 3) simultaneously with equal 25% probability.
Allocate n quantum wires and n classical measurement bits.
Apply Hadamard gate H across all n wires to create a uniform superposition of 2^n integers.
Apply multi-qubit gates referencing specific qubit indices (e.g. CNOT(control=0, target=1)).
Problem: Adding two numbers in a quantum circuit without classical ALU hardware.
Solution: Quantum Draper adder encodes numbers in register phases using Quantum Fourier Transforms.
Interactive activity component
Construct modular quantum circuits using named QuantumRegister and ClassicalRegister blocks in Qiskit.
For Google Colab or Jupyter notebooks, run this shell command to install the required dependencies:
!pip install qiskit1 from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit β Register and circuit classes
1 # 1. Define named modular registers 2 data_reg = QuantumRegister(2, name='data') # 2 data qubits 3 ancilla_reg = QuantumRegister(1, name='ancilla') # 1 ancilla qubit 4 meas_reg = ClassicalRegister(3, name='readout') # 3 classical bits 5 6 # 2. Assemble circuit from registers 7 qc = QuantumCircuit(data_reg, ancilla_reg, meas_reg) 8 qc.h(data_reg[0]) # Gate on data qubit 0 9 qc.cx(data_reg[0], data_reg[1]) # Gate across data qubits 10 qc.cx(data_reg[1], ancilla_reg[0]) # Gate into ancilla 11 qc.measure(data_reg, meas_reg[0:2]) 12 qc.measure(ancilla_reg[0], meas_reg[2]) 13 print('Circuit with Named Registers:') 14 print(qc.draw('text'))
# 1. Define named modular registers
Registers
data_reg = QuantumRegister(2, name='data') # 2 data qubits
Data qubits
ancilla_reg = QuantumRegister(1, name='ancilla') # 1 ancilla qubit
Ancilla qubit
meas_reg = ClassicalRegister(3, name='readout') # 3 classical bits
Classical bits
# 2. Assemble circuit from registers
Assemble
qc = QuantumCircuit(data_reg, ancilla_reg, meas_reg)
Combine registers
qc.h(data_reg[0]) # Gate on data qubit 0
H on data[0]
qc.cx(data_reg[0], data_reg[1]) # Gate across data qubits
CNOT across data
qc.cx(data_reg[1], ancilla_reg[0]) # Gate into ancilla
CNOT into ancilla
qc.measure(data_reg, meas_reg[0:2])
Measure data
qc.measure(ancilla_reg[0], meas_reg[2])
Measure ancilla
print('Circuit with Named Registers:')
Label
print(qc.draw('text'))
Print diagram
Click "Copy for Colab", open Google Colab, paste into a single cell, and run.
1 # ========================================================= 2 # Managing Quantum and Classical Registers in Qiskit 3 # Prepared for Google Colab (Run with Shift + Enter) 4 # ========================================================= 5 6 # Step 1: Install required packages 7 !pip install qiskit 8 9 # Step 2: Import libraries 10 from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit 11 12 # Step 3: Run Demonstration 13 # 1. Define named modular registers 14 data_reg = QuantumRegister(2, name='data') # 2 data qubits 15 ancilla_reg = QuantumRegister(1, name='ancilla') # 1 ancilla qubit 16 meas_reg = ClassicalRegister(3, name='readout') # 3 classical bits 17 18 # 2. Assemble circuit from registers 19 qc = QuantumCircuit(data_reg, ancilla_reg, meas_reg) 20 qc.h(data_reg[0]) # Gate on data qubit 0 21 qc.cx(data_reg[0], data_reg[1]) # Gate across data qubits 22 qc.cx(data_reg[1], ancilla_reg[0]) # Gate into ancilla 23 qc.measure(data_reg, meas_reg[0:2]) 24 qc.measure(ancilla_reg[0], meas_reg[2]) 25 print('Circuit with Named Registers:') 26 print(qc.draw('text'))
Create distinct QuantumRegister objects for data and ancilla qubits.
Build multi-register circuit with structured addressing.
Map quantum register wires directly into corresponding classical readout indices.
QuantumRegisters ('data' and 'ancilla') and ClassicalRegister ('readout').Named register diagram showing data[0], data[1], and ancilla[0] wires routing to readout classical bus.
Modular registers allow structuring large quantum circuits into dedicated functional unitsβsuch as data registers, syndrome extraction ancillas, and readout buses.
Hadamard, CNOT, Bell-state intuition, and correlated quantum circuits.
Test your understanding with these questions. Remember, this is for learning, not examination!