mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-07-08 15:51:34 +02:00
56 lines
2 KiB
Text
56 lines
2 KiB
Text
COMMENT(!MOD!zsh/random
|
|
Some High-quality randomness parameters and functions.
|
|
!MOD!)
|
|
The tt(zsh/random) module gets random data from the kernel random pool. If no
|
|
kernel random pool can be found, the module will not load.
|
|
|
|
subsect(Parameters)
|
|
|
|
startitem()
|
|
vindex(SRANDOM)
|
|
item(tt(SRANDOM)) (
|
|
A random positive 32-bit integer between 0 and 4,294,967,295. This parameter
|
|
is read-only. The name was chosen for compatibility with Bash and to
|
|
distinguish it from tt(RANDOM) which has a documented repeatable behavior.
|
|
)
|
|
enditem()
|
|
|
|
subsect(Math Functions)
|
|
|
|
startitem()
|
|
item(tt(zrand_float+LPAR()RPAR())) (
|
|
Returns a random floating point number between 0 and 1 inclusive.
|
|
)
|
|
enditem()
|
|
|
|
startitem()
|
|
item(tt(zrand_int)+LPAR()tt(upper), tt(lower), tt(inclusive)RPAR()) (
|
|
Returns a random integer between tt(lower) and tt(upper). All parameters are
|
|
optional. If none are specified it is equivalent to
|
|
tt(SRANDOM).
|
|
|
|
tt(upper) is the upper bound on the resultant number and defaults to
|
|
4,294,967,295.
|
|
|
|
tt(lower) is the lower bound and defaults to 0.
|
|
|
|
The defaults of these two arguments are also the maximum and minimum to which
|
|
either can be set.
|
|
|
|
tt(inclusive) is a flag that controls whether the result is ever equal to
|
|
tt(upper). By default it is not. If this argument is set to a non-zero value
|
|
then it may be.
|
|
|
|
This is to facilitate a construct like tt($a[zrand_int+LPAR()$#a+RPAR()+1]) rather
|
|
than tt($a[zrand_int+LPAR()$#a-1+RPAR()+1]).
|
|
For example, if $#a is 16, you would use tt(zrand_int+LPAR()16RPAR()) which has
|
|
16 possible return values 0-15. Because the function can return zero, in order
|
|
to use it as an array index from 1-16 you need to add one. It would
|
|
be an array index range error for it to also potentially return 16 ($#a). You
|
|
could, however, use the construct tt(zrand_int+LPAR()16,1,1+RPAR()) instead of
|
|
adding 1 to achieve the same result, but it is more verbose.
|
|
|
|
Most statistics algorithms seem to also expect 0 to tt(upper)-1, so this was
|
|
deemed the most commonly desired case and chosen as the default.
|
|
)
|
|
enditem()
|