liveBook · Manning

Sampling

As explained in Building Quantum Software with Python

Sampling is the process of generating outcomes according to a specified probability distribution.

Sampling generates outcomes according to a probability distribution. In a quantum computation, measurement returns one nondeterministic outcome; repeating the same computation produces samples whose frequencies reflect probabilities encoded by the quantum state. This makes measurement a central pattern for extracting information from a state. section 1.5.1 section 4.1.1

The computational task is to shape a quantum state so its outcome probabilities match a desired distribution, then measure it repeatedly. Each run yields a binary string when all qubits are measured. The collected counts can represent the distribution itself, reveal sought outcomes, or support probability estimates. section 4.1.2 section 4.1.1 section 1.6

Figure 1.15 A Galton board showing physical pegs driving marbles into bins according to the binomial distribution
figure

A Galton board provides a physical analogy: each marble is one run, and the final bin frequencies reveal the binomial distribution. section 1.5.1

Simulate repeated single-qubit measurements

A classical simulator can select samples directly from state-derived probabilities rather than rerunning a circuit. Python's random.choices receives possible outcomes, their probabilities computed as squared amplitude magnitudes, and a sample count. Ten samples can produce uneven counts such as 0 → 7 and 1 → 3; increasing to 1,000 samples makes observed frequencies closer to the expected probabilities. section 3.4 section 3.4

from random import choices
from collections import Counter

samples = choices(range(len(s)), [abs(s[k])**2 for k in range(len(s))], k=10) #1
print(samples)

The listing maps state entries to squared-magnitude probabilities and requests ten outcome samples with random.choices. section 3.4

Sampling supports several practical quantum-computing roles:

  • Generate random values or random inputs for simulations and modeling from a uniform distribution. section 4.1.2
  • Sample distributions that may be difficult to construct with classical methods. section 1.5.1
  • Estimate the proportion of good and bad outcomes from a smaller sample; larger samples reduce margin of error. section 9.6
  • Raise the measurement probability of desired outcomes in quantum search, as in Grover's algorithm. section 12.1.2

Sampling is not a guarantee of advantage for every computation. Quantum parallelism and measurement can help only when a problem aligns with the structure of quantum computation. Quantum applications are expected to be specialized computations used alongside classical solutions, including uses in random sampling, optimization, and machine learning. section 12.1.2 section 12.1

How Building Quantum Software with Python covers it

How deep it goes
Explains distribution encoding through state amplitudes, repeated measurement, count interpretation, and Python simulation without formal derivations.
Examples
Uses a Galton board, a single-qubit circuit, Python-generated samples, uniform random values, and good-versus-bad marble populations.
What you can do after
Apply it via Python's random.choices to simulate measurements and use repeated counts to approximate outcome probabilities.
How it connects
Connects quantum measurement and quantum parallelism with amplitude estimation, Grover's algorithm, uniform distributions, and quantum states.

Also explained in

Compare how 23 books explain sampling →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Building Quantum Software with Python. The section links point to the parts of the book it draws on.