# Benford's law with random integers

I tried testing random integers for compliance with Benford's law, which they are apparently supposed to do. However, when I try doing this with Python,

map(lambda x:str(x)[0], [random.randint(0, 10000) for a in range(100000)]).count('1')

I get approximately equal frequencies for all leading digits. Why is this the case? Might it have something to do with how the pseudorandom number generator, the Mersenne twister, works?

-
Benford's law certainly does not assume that one chooses randomly the integers in $[1,10^n]$. –  Did Oct 21 '12 at 8:00
Therefore, this is the distribution expected if the mantissae of the logarithms of the numbers (but not the numbers themselves) are uniformly and randomly distributed. (Wikipedia) –  martini Oct 21 '12 at 8:01

Thank you for the answers, but I think I found a more explicit source of the error by reading the paper more carefully.

Benford's law does apply to random integers, but only as the upper and lower bounds go to infinity. The limit $\lim_{N\to \infty} P_N^1(1)$ (the proportion of integers from 1 to $N$ which have a leading digit of 1, as $N$ goes to infinity) diverges, and equals 1/9 at every $10^n, n\geq 2$, which explains my result. If I set the upper bound on the random integers to 12000, for example, I get different results.

-
Sure, and my answer mentioned that property of the range you were picking from, but you don't get Benford's law just by picking your finite bound carefully and continuing to draw uniformly. –  Kevin Carlson Oct 21 '12 at 9:11
What do you mean? Wouldn't it approach Bentford's law? –  Hypercube Oct 21 '12 at 9:15
As you said yourself, the sequence $P^1_N$ diverges. In particular it oscillates forever, with the $\lim\sup$ too high for Benford and the $\lim\inf$ too low. That's why the author had to spend the next couple of pages constructing a sequence of limits of partial averages $P^m_N$ to finally derive the law. –  Kevin Carlson Oct 21 '12 at 10:05
Yes, I meant as the lower bound goes to infinity. Thank you! –  Hypercube Oct 21 '12 at 16:48
The linked paper is titled unfortunately, at least as regards the current conception of the word "random." The whole point of Benford's law is precisely that it doesn't hold when integers are drawn uniformly from a range that, like yours, ends at a power of $10$: a well-designed pseudorandom number generator should give numbers with asymptotically exactly a $\frac{1}{10}$ chance of each leading digit $0,1,...,9$ in decimal notation.