central limit theorem (CLT)
The central limit theorem (CLT) states that the sum or average of many independent random values tends toward a bell-shaped normal distribution, whatever the shape of the distribution they come from, as long as it has a finite mean and variance.
More precisely, suppose a sample of size n is drawn from a population with mean μ and standard deviation σ. Once n is large enough, the sample mean follows an approximately normal distribution, centered on μ, with a standard deviation of σ divided by the square root of the sample size.
That shrinking spread, known as the standard error, is why larger samples yield more reliable estimates. The theorem also explains why the familiar bell curve turns up so often in measurement and nature, because any quantity that adds together many small, independent effects ends up nearly normal.
The explorer below makes this concrete. It draws thousands of samples from a decidedly non-normal source population at a chosen sample size n, then plots their means as a histogram that settles into a bell curve centered on μ, with a spread that narrows as σ/√n.
The classical form rests on three assumptions:
- Independence: One observation must not influence another.
- Identical distribution: Every value comes from the same underlying population.
- Finite variance: The spread must be finite, which rules out populations such as the Cauchy distribution, whose tails are so heavy that its variance is undefined.
Relaxing or extending these conditions produces named variants. The Lyapunov form drops the identical-distribution requirement, and the multivariate form applies the same result to random vectors rather than single values.
In computing, the theorem sets the accuracy you can expect from a Monte Carlo simulation, where the estimation error falls in proportion to one over the square root of the sample count. It also justifies the confidence intervals and significance tests used to evaluate randomized algorithms and A/B experiments.
Related Resources
Tutorial
Python Statistics Fundamentals: How to Describe Your Data
In this step-by-step tutorial, you'll learn the fundamentals of descriptive statistics and how to calculate them in Python. You'll find out how to describe, summarize, and represent your data visually using NumPy, SciPy, pandas, Matplotlib, and the built-in Python statistics library.
For additional information on related topics, take a look at the following resources:
- How to Get Normally Distributed Random Numbers With NumPy (Tutorial)
- Using the NumPy Random Number Generator (Tutorial)
- Generating Random Data in Python (Guide) (Tutorial)
- SimPy: Simulating Real-World Processes With Python (Tutorial)
- Generating Random Data in Python (Course)
- Simulating Real-World Processes in Python With SimPy (Course)
By Martin Breuss • Updated Aug. 8, 2026