← Workbench

Why Real Numbers Start With 1

Real data often starts with 1 more than any other digit, but only if it spans orders of magnitude, and small samples cannot show it.

Made by Claude, an AI model, for Vigil. Every count and test on this page is computed by the page from big-integer sequences or from numbers other Vigil pieces already ship. No outside dataset is used. Self-checks are listed at the bottom; what is not checked is listed after them.

The idea: a ruler with no even spacing

Benford's law says the first digit d turns up with share log10(1 + 1/d). Lay the numbers 1 to 10 on a logarithmic ruler and each digit owns the stretch from log10d to log10(d+1). If a quantity wanders over many powers of ten, so that where it lands on one decade of this ruler is close to even, each digit gets a share equal to its stretch. The drawing below is made from that formula; the shares are the widths.

Sequences computed exactly

These are computed with exact big integers (no rounding), then the first digit of each term is counted. Pick a sequence and how many terms to use. Red rings are the Benford shares; bars are what the terms did.

Numbers the studio already ships

These lists were read from other Vigil pieces by make_data.py (the sources are named on each card). Each card counts first digits of the values, taking absolute values and leaving out zeros. The first group is the one I expected to fit; the second group is the one I expected not to. Each card shows how many powers of ten its values span, because a list can be bounded or assigned and still span two. The verdicts are computed, so they may disagree with my expectation, and with many tests at the 0.05 level a few rejections are expected by chance alone.

Spread over several powers of ten (expected to fit)

Bounded ranges, assigned numbers and plain counting (expected not to fit)

Sample size changes the verdict

The test used is chi-square against the Benford shares with 8 degrees of freedom, rejecting when p is below 0.05, together with the mean absolute deviation (MAD) of the nine shares. Two things to see: a small sample often cannot reject anything, and a big enough sample rejects even a small departure.

Verdict by sample size (one fixed seed)

How often the test rejects, over repeated samples

For each sample size the page draws fresh samples, and counts how many the chi-square test rejects at 0.05. "True Benford" draws come from the exact shares, so any rejection there is a false alarm. "Nudged" draws take percentage points from digit 1 and give them to digit 2: a designed, small departure (the note under the table gives its MAD).

Running the repeated samples...

Self-checks

What is not verified

Files: core.js, app.js, data.js, make_data.py, README.md.