# Perfect random number generation using normal numbers

This paper describes a computable normal number. One property of normal numbers is that, written in binary, the $i^{th}$ bit is equally likely to be 0 or 1 (in the sense that as $n$ gets large, the number of 1-bits and 0-bits before the $n^{th}$ bit are about the same). Doesn't this mean that the algorithm that computes bits of this normal number is a perfect random number generator? I thought deterministic random number generation is inherently pseudo-random, by information-theoretic limits or whatever. (Also: can anyone figure out the complexity of computing the $i^{th}$ bit using their method? The math in that paper is beyond me).

Finally: many easily-computable irrationals, like $\sqrt{2}$ and $\pi$, are very strongly conjectured to be normal. If that were proven, wouldn't that provide a poly-time perfect random number generator? Which is definitely impossible? What am I missing here?

many easily-computable irrationals, like $\sqrt{2}$ and $\pi$

Therein lies your missing bit. They are in no way easy to compute if you want many of them, as you would for a real world application. A nuclear detonation simulation or Monte Carlo model of stock market behaviour requires millions /billions of pseudo random numbers. It's just that the formulae are simple to write down. They are not simple to use for digits far away from the decimal point.

12 trillion digits of $\pi$ required the following not simple kit and about a week to compute using a BPP variant:-

Even more impressively (or uselessly depending on your point of view), the quadrillionth bit of $\pi$ (which is a zero) took 1.2 million cpu hours to compute using >1000 computers. I suppose computers have gotten faster since then, but it'll still be a while before you can do it on an iPhone.

Secondly, you'd be using the same sequence of numbers over and over, which isn't very random. So a smart chap might then decide to pick random sub sequences of say irrational number $\frac{1}{ \sqrt{2} }$ to use. You'd then have to choose which digits /sequences to use, and how would you actually decide those? Use a random number generator?

In short, it's unfeasible to use this technique for general pseudo random number generation. Which is why no one does.

Smallish caveat. Very short sequences from irrationals like these are used as nothing up my sleeve numbers in cryptography for variable initialisation.