Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: random numbers



Thanks all:

On 2025-09-15 11:18, Clinton Bunch wrote:
Also note, RANDOM *isn't* random.  It's a predictable, repeatable sequence of numbers that looks random.  No computer produces truly random numbers.  In large part because random is an analog function and computers are inherently digital.  But some sources are better than others. 
Sure, I know we can never really 'get there' and I know there are other issues with zsh's RANDOM that are well accepted, but the above seemed a blatant lack of randomness.

Mark:

> I mean, only if you use the whole value of RANDOM directly, which most applications of random numbers don't do. If you do the usual trick of taking the remainder of RANDOM modulo a range, e.g. picking random digits one at a time with (( RANDOM % 10 )), you won't see such a strong weighting. In the case of single digits you are 0.03% less likely to get an 8 or 9 than a 0 through 7, but that's a pretty mild deviation from uniformity.

Yeah, it's just that this Benford's Law thing only applies to the first digit in a set of random data, so the cure would obviate the point of the thing.  Anyway it seems that the law doesn't apply to RANDOM data anyway as I've since discovered -- I need to research the law a bit more.  I'm curious as to the '0.03%' that you mention, why is that?  Or is it to complicated to discuss here? 

Ditto Roman's fix, it obviates the real issue which is limited to first digits.

Lawrence:

> It would be goofy if the shell chose the range of RANDOM just to
eliminate bias with respect to base-10 leading digits.  One could
very well object that such a change would disrupt the current lack
of leading-digit bias for base-8 representations.

That's logical.  Ok then, I'm glad I asked.  

> A user who generates and uses random numbers needs to account for
bias.  This is not something the generator can do for you
Right, forewarned is forearmed.  I was frankly expecting to hear that my view of randomness is a bit simplistic.   Anyway the result of the experiment is a failure in any case -- Benford's Law doesn't work here. 




 




Messages sorted by: Reverse Date, Date, Thread, Author