23
$\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$
14
  • 31
    $\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$ Apr 10, 2019 at 17:55
  • 7
    $\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, 2019 at 0:26
  • 10
    $\begingroup$ @EricLippert Aren't all pseudorandom number generators predictable? $\endgroup$ Apr 11, 2019 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, 2019 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$ Apr 11, 2019 at 12:56

7 Answers 7

18
$\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$
49
$\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$
16
  • 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, 2019 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$ Apr 10, 2019 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, 2019 at 0:53
  • 3
    $\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$ Apr 11, 2019 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$ Apr 11, 2019 at 8:52
28
$\begingroup$

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

$\endgroup$
12
  • 12
    $\begingroup$ OP never mentions cryptography... $\endgroup$
    – AnoE
    Apr 10, 2019 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$ Apr 10, 2019 at 16:31
  • 7
    $\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$
    – Krupip
    Apr 10, 2019 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, 2019 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$ Apr 11, 2019 at 2:08
7
$\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$
7
  • 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, 2019 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, 2019 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, 2019 at 18:06
  • 2
    $\begingroup$ That is just emperical observation for first few digits? What is to be meant by that? $\endgroup$ Apr 11, 2019 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$ Apr 11, 2019 at 8:19
3
$\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$
3
  • 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$ Apr 10, 2019 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, 2019 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, 2019 at 14:44
2
$\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$
3
  • 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$ Apr 11, 2019 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$ Apr 11, 2019 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, 2019 at 17:50
1
$\begingroup$

I know this is old, but I can't help but see that the accepted answer is not quite right... so here we go:

Most pseudo random number generators leverage an irrational ratio somewhere in their calculation, because as your intuition suggests, irrational figures are the best source we have to a chaotic sequence of values. Many small implementations of PRNGs you can find in text books, and other such resources utilize a so called "magic number" that is actually a representation of an irrational figure -- for example a value which closely approximates the irrational figure relative to available fidelity of the medium -- and generates output by progressively applying a trivial arithmetic transform -- for example by having stored a seed value that is multiplied and asigned to by the "magic number" -- and returning it.

Ultimately a PRNG has a full cycle of values for any given seed that it will progressively output ad infinitum. The length of the cycles, and how many independent cycles there are and other qualities of the pseudo random sequences are a function of the irrational number used at the core of the algorithm. The golden ratio or phi is proposed as the MOST irrational number, and hypothetically a decent approximation of phi applied to the approach will result in a PRNG that has a single cycle that includes all the possible outputs of the medium, which is great!

Unfortunately, due to the nature of this generation, the cycle is deterministic and repeated ad nausea. This necessarily result in limited domain of ultimately predictable, and reproducible "chaos" that will not include permutations of sub-sequences of the PRNG output. It would literally output EVERY other value it could before it repeated itself, however an application could apply arithmetic operations such as floor, cieling, modulos, integer division, clamping, and so forth to map the many PRNG output values to a desired domain of fewer values, thus obtaining permutations of the fewer values within the desired domain. You Essentially have to throw away some fidelity to get permutations.

Alternatively you can devise a PRNG algorithm that takes into consideration multiple prior outputs, exponentially expanding the potential cycle length, and/or leverages a cycle of irrational figures (potentially from another PRNG) to really mix things up. This would be similar in approach to the enigma machines of WWII that introduces more chaos into the encoding of messages by way of a hidden progressing sequence of arithmetic modifications to determine the encoding of the next symbol. A good example of a method to generating irrational numbers, is to apply exponents to phi. However it should be noted that all irrational numbers you could compute through such means are LESS irrational than phi itself unless the exponent is 1, and especially so if the exponent is 0.

I hope that helped someone.

$\endgroup$
2
  • $\begingroup$ I'd suggest to break the single paragraph... $\endgroup$
    – AnoE
    Dec 7, 2020 at 10:24
  • $\begingroup$ @AnoE Thank you for the suggestion. The obelisk has been minced. $\endgroup$ Dec 24, 2020 at 1:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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