Launch the interactive walkthrough to discover each component, including the 3D Q-Sphere Lab & Python in Colab.
Understand how a single quantum circuit evaluates a function f(x) across 2^n inputs simultaneously via a quantum oracle.
Interactive 3D state vector exploration, unitary transformation gates, and Born rule collapse for Topic 7.2
| Symbol / Term | Meaning | Beginner Interpretation |
|---|---|---|
| Quantum Oracle operator | A black-box quantum gate implementing | |
| Input query state | Can be an individual bitstring or an equal superposition of all possible inputs | |
| Ancilla target qubit in minus state | The catalyst qubit prepared as | |
| Phase kickback factor | If f(x)=0, phase is (-1)β° = +1 (no change). If f(x)=1, phase is (-1)ΒΉ = -1 (phase flipped!) |
Evaluating phase kickback for an oracle where f(0) = 0 and f(1) = 1 on superposition |+β© = (|0β© + |1β©)/β2:
Result: The input state flipped from to |ββ© purely from phase kickback, turning the function outputs directly into readable quantum phase.
Apply Hadamard gates across input register: sum |x>/sqrt(2^n).
Initialize ancilla qubit to state |-> using X followed by H.
Pass through U_f; phase kickback writes (-1)^f(x) onto each branch.
Apply Hadamard transformation to read out global structural properties of f(x).
Problem: Finding mathematical properties of secret symmetric encryption s-boxes.
Solution: Quantum oracles query s-box functions in parallel superposition.
Interactive activity component
Evaluate a mathematical function across all 8 inputs simultaneously using a 3-qubit superposition register in Qiskit.
For Google Colab or Jupyter notebooks, run this shell command to install the required dependencies:
!pip install qiskit1 from qiskit import QuantumCircuit 2 from qiskit.quantum_info import Statevector
from qiskit import QuantumCircuit β Circuit constructor
from qiskit.quantum_info import Statevector β Statevector analysis
1 # 3-qubit input register evaluates 2^3 = 8 inputs simultaneously 2 qc = QuantumCircuit(3) 3 qc.h(range(3)) # Create uniform superposition of all integers 0 to 7 4 sv = Statevector.from_instruction(qc) 5 print('=== 3-Qubit Quantum Parallelism in Qiskit ===') 6 print(f'Total simultaneous inputs evaluated: {sv.dim}') 7 print('\nInput states in superposition:') 8 for idx, amp in enumerate(sv.data): 9 integer_val = idx 10 binary_val = f'{idx:03b}' 11 print(f' Input x = {integer_val} (|{binary_val}>) with amplitude {amp.real:.4f}') 12 print('\nA single quantum gate operation now acts on ALL 8 inputs simultaneously!')
# 3-qubit input register evaluates 2^3 = 8 inputs simultaneously
Setup
qc = QuantumCircuit(3)
3 qubits
qc.h(range(3)) # Create uniform superposition of all integers 0 to 7
H on all 3
sv = Statevector.from_instruction(qc)
Extract statevector
print('=== 3-Qubit Quantum Parallelism in Qiskit ===')
Header
print(f'Total simultaneous inputs evaluated: {sv.dim}')
8 inputs
print('\nInput states in superposition:')
Label
for idx, amp in enumerate(sv.data):
Loop all 8 basis states
integer_val = idx
Decimal value
binary_val = f'{idx:03b}'
Binary string
print(f' Input x = {integer_val} (|{binary_val}>) with amplitude {amp.real:.4f}')
Print input
print('\nA single quantum gate operation now acts on ALL 8 inputs simultaneously!')
Parallelism takeaway
Click "Copy for Colab", open Google Colab, paste into a single cell, and run.
1 # ========================================================= 2 # Evaluating Functions in Parallel with Quantum 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 QuantumCircuit 11 from qiskit.quantum_info import Statevector 12 13 # Step 3: Run Demonstration 14 # 3-qubit input register evaluates 2^3 = 8 inputs simultaneously 15 qc = QuantumCircuit(3) 16 qc.h(range(3)) # Create uniform superposition of all integers 0 to 7 17 sv = Statevector.from_instruction(qc) 18 print('=== 3-Qubit Quantum Parallelism in Qiskit ===') 19 print(f'Total simultaneous inputs evaluated: {sv.dim}') 20 print('\nInput states in superposition:') 21 for idx, amp in enumerate(sv.data): 22 integer_val = idx 23 binary_val = f'{idx:03b}' 24 print(f' Input x = {integer_val} (|{binary_val}>) with amplitude {amp.real:.4f}') 25 print('\nA single quantum gate operation now acts on ALL 8 inputs simultaneously!')
Allocate 3 qubits in state |000>.
Apply Hadamard across all 3 wires to generate sum_{x=0}^7 |x>.
Demonstrate that the single quantum register now holds all 8 values simultaneously.
QuantumCircuit(3) with H applied to all 3 wires.
8 simultaneous inputs evaluated in parallel: x = 0 to 7 with amplitude 0.3536 each.
Quantum parallelism enables a processor with n qubits to simultaneously evaluate 2^n function arguments in a single operational step, providing the foundation for exponential quantum speedup.
Oracle, diffusion operator, interference, and quadratic search speedup.
Test your understanding with these questions. Remember, this is for learning, not examination!