19
$\begingroup$

Irrational numbers like $\pi$, $e$ and $\sqrt{2}$ have a unique and non-repeating sequence after the decimal point. If we extract the $n$-th digit from such numbers (where $n$ is the number of times the method is called) and make a number with the digits as it is, should we not get a perfect random number generator? For example, if we're using $\sqrt{2}$, $e$ and $\pi$, the first number is 123, second one is 471, the next one is 184 and so on.

$\endgroup$
  • 30
    $\begingroup$ You have a strange definition of "random" in your head. "Random" means "unpredictable". How is your sequence unpredictable? What definition of "random" do you have in mind? Perhaps what you are calling "random" has another name. $\endgroup$ – Eric Lippert Apr 10 at 17:55
  • 6
    $\begingroup$ Note the spigot algorithm can be used to generate any hex digit in pi, without having to generate prior digits. $\endgroup$ – rcgldr Apr 11 at 0:26
  • 10
    $\begingroup$ @EricLippert Aren't all pseudorandom number generators predictable? $\endgroup$ – Federico Poloni Apr 11 at 6:23
  • 7
    $\begingroup$ The term has come up a few times: this is a "psuedo random number" not a "random number." It's a number generated algorithmically (so not random), but which has many desirable properties that random numbers have. Another algorithm is the "NYC phonebook" algorithm, where you go down the list of phone numbers, alphabetically, and take the last digit from each of them. Not random, but pseudorandom with some rather nice statistical behaviors! $\endgroup$ – Cort Ammon Apr 11 at 7:10
  • 5
    $\begingroup$ "Pseudo" means "similar to but not". So pseudo random numbers are similar to, but not random numbers. So I'm not following your train of thought here. Now, crypto-strength PRNGs have the desirable property that if the internal state is unknown to the attacker, no statistical test we possess can distinguish a crypto PRNG from a true RNG, and that includes their lack of predictability. But the digits of pi do not have that property; they are highly predictable. $\endgroup$ – Eric Lippert Apr 11 at 12:56
16
$\begingroup$

The most obvious disadvantage is the unnecessary complexity of PRNG algorithms based on irrational numbers. They require much more computations per generated digit than, say, an LCG; and this complexity typically grows as you go further in the sequence. Calculating 256 bits of π at the two-quadrillionth bit took 23 days on 1000 computers (back in 2010) - a rather prohibitive complexity for an RNG.

$\endgroup$
46
$\begingroup$

For any reasonable definition of perfect, the mechanism you describe is not a perfect random number generator.

  • Non-repeating isn't enough. The decimal number $0.101001000100001\dots$ is non-repeating but it's a terrible generator of random digits, since the answer is "always" zero, occasionally one, and never anything else.

  • We don't actually know if every digit occurs equally often in the decimal expansion of $\pi$ or $\mathrm{e}$ (though we suspect they do).

  • In many situations, we require random numbers to be unpredictable (indeed, if you asked a random person what "random" means, they'd probably say something about unpredictability). The digits of well-known constants are totally predictable.

  • We usually want to generate random numbers reasonably quickly, but generating successive digits of mathematical constants tends to be quite expensive.

  • It is, however, true that the digits of $\pi$ and $\mathrm{e}$ look statistically random, in the sense that every possible sequence of digits seems to occur about as often as it should. So, for example, each digit does occur very close to one time in ten; each two-digit sequence very close to one in a hundred, and so on.

$\endgroup$
  • 11
    $\begingroup$ For the third point, there must be some sort of 'secret' input to your generation process for it to be unpredictable (the generation process itself should be deterministic if we don't want to rely on yet another random number generator.). This extra input is often called a seed. $\endgroup$ – Discrete lizard Apr 10 at 14:01
  • 6
    $\begingroup$ @Discretelizard This is true but there's not much scope for seeding beyond "return successive digits starting with position $s$." By the time you've seen $2\log s$ digits, that sequence occurs only a few times within the first $s^2$ digits of $\pi$, so it's unique within the first $s$ digits with high probability and you know the seed. $\endgroup$ – David Richerby Apr 10 at 16:15
  • 2
    $\begingroup$ @Barmar: At that point you have to ask whether this technique is really more performant (and more space-efficient) than a "standard" PRNG would be. $\endgroup$ – Kevin Apr 11 at 0:53
  • 2
    $\begingroup$ The digits of pi or e are completely unpredictable, especially since the viewer / recipient / code breaker etc has no idea how far along in the sequence you already are. If you start at digit number 237423 of the sequence, it will take so long to figure out, as to be random. $\endgroup$ – Reversed Engineer Apr 11 at 6:12
  • 10
    $\begingroup$ @DaveBoltman If we're not doing something like cryptography, nobody's going to care enough to bother figuring it out. If we are doing cryptography, it's a standard assumption that your adversary knows what algorithm you're using which, in this case, includes what irrational number the sequence is coming from and how you're choosing the digits, except for any parameter such as "start at digit $s$". If the adversary doesn't know what number you're using then, sure, the next digit could be literally anything, but then they guess it's $\sqrt{\text{my birthday}}$ and the game's up. $\endgroup$ – David Richerby Apr 11 at 8:52
28
$\begingroup$

It is cryptographically useless because an adversary can predict every single digit. It is also very time consuming.

$\endgroup$
  • 11
    $\begingroup$ OP never mentions cryptography... $\endgroup$ – AnoE Apr 10 at 16:19
  • 13
    $\begingroup$ @AnoE So? That this process would be cryptographically useless is still relevant because crypto is an avid user of randomness. If you bring up the devices /dev/random and /dev/urandom someone will invariably bring up cryptography. $\endgroup$ – Greg Schmit Apr 10 at 16:31
  • 6
    $\begingroup$ You would be amazed at how useless cryptographic security is in real time PRNG generation. irrational numbers are often used in GPU PRNGs. There are a lot of applications where how "secure" your PRNG is simply irrelevant. What matters in something like coherent noise generation is the quality of distribution and how often your period repeats, and correlation effects due to adjacent seeds (which would require avalanche mixers to fix). Quite honestly your answer is wrong, doesn't belong here, and should probably be deleted. $\endgroup$ – opa Apr 10 at 17:44
  • 6
    $\begingroup$ This is anot an answer to the question. Note the OP of the linked question uses random numbers for seeding a monte carlo analysis. An update to address the question asked should be considered. mathoverflow.net/questions/26942/… $\endgroup$ – CramerTV Apr 10 at 17:47
  • 8
    $\begingroup$ Certainly there are many applications where PRNGs don't need to be cryptographically secure. But OP didn't ask if it was useful for some purposes, they asked if this method was a "perfect RNG". While they haven't clarified what they mean by "perfect", the fact that it's unsuitable for one of the major uses of RNGs seems very relevant to answering that question. $\endgroup$ – Geoffrey Brent Apr 11 at 2:08
6
$\begingroup$

(updated after many people pointed out that random number generator is not the same thing as a single normal sequence)

If you ask whether you can get a normal sequence out of $\pi$ (i.e., all numbers appear uniformly), then there are several answers on mathoverflow. For example, the answer about Distribution of the digits of Pi says:

...it is believed that $\pi$ is a normal number (~uniform distribution of every digits sequence).

For digit distribution data, see e.g. http://www.eveandersson.com/pi/precalculated-frequencies or https://thestarman.pcministry.com/math/pi/RandPI.html (first 1000 digits):

enter image description here

At mathoverflow, there are also nice answers at:

$\endgroup$
  • 3
    $\begingroup$ If you believe the question is a duplicate, then why are you answering it? You should simply flag it, not reinforce undesired posting behavior. $\endgroup$ – dkaeae Apr 10 at 16:11
  • 8
    $\begingroup$ @dkaeae There is no support for duplicates of questions on other sites. Furthermore, the same question on different sites can get different answers. In this case, a site such as Mathematics might not give much consideration to security concerns. See also this answer. Do note that we discourage asking the same question on multiple sites at the same time, since this tends to lead to wasted efforts. But the same question by different persons at different times on different sites is usually ok. $\endgroup$ – Discrete lizard Apr 10 at 17:01
  • 6
    $\begingroup$ Unfortunately, just because a number is normal doesn't mean that outputting its digits gives you a good RNG. The outputs of such a RNG are still entirely predictable. Whether that's acceptable might depend on the application. So, I don't think it's quite as simple as saying "pi is normal, case closed". $\endgroup$ – D.W. Apr 10 at 18:06
  • 2
    $\begingroup$ That is just emperical observation for first few digits? What is to be meant by that? $\endgroup$ – marshal craft Apr 11 at 6:23
  • 1
    $\begingroup$ @D.W. I mentioned that I intend to use a combination of numbers like π and e. And please say how the output will be predictable if we do not know how far down the sequence the generator has gone? $\endgroup$ – Abhradeep Sarkar Apr 11 at 8:19
1
$\begingroup$

In general, this approach does not work: "randomness" does not mean that you get a lot of different digits, but there are other aspects as well. For example, a classic test is to see if all two-digit, or three-digit etc. combinations occur with the same frequency. This would be a very simple test, which can rule out obvious non-random results, but is still by far too simplistic to check for really random behaviour.

See the Wikipedia page about Randomness Tests as a collection of links to primary sources regarding this. They do mention a good amount of quite complicated-sounding concepts; it is it not so important to go into deep detail about this - but it is clear that it is not intuitively possible to declare a specific number to be a good source for such digits.

On a positive note: For a specific irrational number, you are of course free to just try it; i.e., calculate the number to a sufficiantly large degree of digits, and run it through all known tests (there are tools for that, see above link). If the measure is good enough for your use case, and if you are aware that this is obviously useless for cryptographical applications, and always get the same numbers if you should start over, and that the quality might degrade if you get past the n you picked for testing the randomness, you could use those numbers. But it will be far better to use a dedicated (pseudo-)random number generator; and nothing beats a good physical source of randomness.

$\endgroup$
  • 4
    $\begingroup$ OK but $\pi$ and $\mathrm{e}$ have the property that all the 2, 3, 4, ... digit sequences do empirically turn up with the right frequency. Nobody's managed to prove it but it seem to be true. $\endgroup$ – David Richerby Apr 10 at 16:47
  • 3
    $\begingroup$ Ayrat's answer links to other sites where mathematicians have done these tests. They believe, but haven't proved, that π meets the statistical tests. $\endgroup$ – Barmar Apr 10 at 22:27
  • $\begingroup$ Yes, that's what I meant with my last paragraph - just empirically trying it is worthwhile; but rigorously it has not been proven (or cannot simply be assumed to be true) for arbitrary "complicated-looking" irrationals. @DavidRicherby, @ Barmar $\endgroup$ – AnoE Apr 12 at 14:44
1
$\begingroup$

It provides a good random number right until you realize how it was produced, as with many pseudo random number. The irrational (non algebraic and non transcendental) numbers you have chosen are common and so easier guessed then others. I can see no issue with this method provided you choose less commonly seen generators.

$\endgroup$
  • 4
    $\begingroup$ No issue except the gross inefficiency, the fact that you're relying on any adversary not knowing what your algorithm is, the fact that a bad choice of generator could lead to very poor sequence, ... $\endgroup$ – David Richerby Apr 11 at 9:16
  • 4
    $\begingroup$ By the way, of the numbers suggested in the question, $\sqrt{2}$ is algebraic and $\pi$ and $\mathrm{e}$ are transcendental. $\endgroup$ – David Richerby Apr 11 at 9:17
  • $\begingroup$ A transcendental number is a real number that is not algebraic. It is not possible for a real number to be both non algebraic and non transcendental. $\endgroup$ – Brady Gilg Apr 12 at 17:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.