Build a 2-qubit circuit (in Qiskit, or with raw numpy matrices) that prepares the Bell state $|\Phi^+\rangle = (|00\rangle + |11\rangle)/\sqrt{2}$ from $|00\rangle$, measure it 1{,}000 times in the computational basis, and verify empirically that the outcomes are split roughly 50/50 between $|00\rangle$ and $|11\rangle$ with $|01\rangle$ and $|10\rangle$ never appearing. The point is not just to reproduce the distribution — it is to argue convincingly, in writing, that the result demonstrates *entanglement* rather than mere classical correlation, and to identify the experiment that would distinguish the two.
qc = QuantumCircuit(2, 2); qc.h(0); qc.cx(0, 1); qc.measure([0,1], [0,1]), then run on AerSimulator() (or the new StatevectorSampler / SamplerV2 API depending on your Qiskit version) with shots=1000. Pure numpy: build , , multiply onto , then sample from the squared-amplitude distribution using np.random.choice. Both are fine — the rubric scores the analysis, not the framework.flip a coin, both write down the result) reproduces the 50/50 Z-basis distribution exactly. The thing it cannot reproduce is the correlation in every basis. Mention this even if you don't implement the X-basis check.A run looks something like:
Statevector before measurement: [0.7071+0.j 0. +0.j 0. +0.j 0.7071+0.j]
|00> |01> |10> |11>
Measurement counts (1000 shots):
|00>: 498
|01>: 0
|10>: 0
|11>: 502
Predicted P(|00>) = P(|11>) = 0.5, P(|01>) = P(|10>) = 0.0
Empirical fractions: 0.498 | 0.000 | 0.000 | 0.502
Discrepancy: 0.002 (within 1-sigma sampling error of 0.0158)
Entanglement check: tried to factor as |a> tensor |b>; system is inconsistent.
…followed by the prose argument for entanglement vs. classical correlation, naming the X-basis measurement as the experiment that would falsify the classical-correlation hypothesis.