[Mono-list] Random

Matthew S. Ford Matthew.S.Ford@Rose-Hulman.Edu
Tue, 31 Jul 2001 13:09:22 -0500


Bob Smith wrote:

> --use-c-rand
> --use-linux-rand
> to select different implementations of the c mono-rand() function that
> the random class would use depending on if the user wants speed, or
> needs precision, or whatever.
>
I think that we'll basically need both a libc rand() like function and a 
random device.

The libc version is what is referred to as a pseudo-random number 
generator.  On a quick inspection they appear to be random and for many 
purposes, they are.  If you need some numbers to throw into a game are 
need some numbers for your modeling, a PRNG will work fine.

When prodicting what number comes next is worth a significant amount of 
money, then a "truly random" source is needed.  This is usually provided 
by monitoring user input.  Taking the time between key strokes and using 
this to select which number to return is an example of how this can be 
accomplished.

Using a truly random source for everything could drain the source of its 
entropy (randomness) and could case generating truly random numbers to 
be slower due to the system needing to grab more entropy from the user. 
It also cause debugging to be a problem when trying to reproduce an 
error in an application that works with random numbers.

I'm not saying that this work needs done now but just saying that both 
will be needed in the end.


From,

Matthew S. Ford