Random Module
Jump to navigation
Jump to search
This XQuery Module contains functions for computing random values. All functions except for random:seededdouble and random:seededinteger are nondeterministic, i. e., they return different values for each call.
Conventions
All functions and errors in this module are assigned to the http://basex.org/modules/random
namespace, which is statically bound to the random
prefix.
Functions
random:double
Signatures  random:double() as xs:double 
Summary  Returns a double value between 0.0 (inclusive) and 1.0 (exclusive). 
random:integer
Signatures  random:integer() as xs:integer random:integer($max as xs:integer) as xs:integer 
Summary  Returns an integer value, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive) 
Errors  bounds : the maximum value is out of bounds.

random:seededdouble
Signatures  random:seededdouble($seed as xs:integer, $num as xs:integer) as xs:double* 
Summary  Returns a sequence with $num double values between 0.0 (inclusive) and 1.0 (exclusive). The random values are created using the initial seed given in $seed . 
random:seededinteger
Signatures  random:seededinteger($seed as xs:integer, $num as xs:integer) as xs:integer* random:seededinteger($seed as xs:integer, $num as xs:integer, $max as xs:integer) as xs:integer*

Summary  Returns a sequence with $num integer values, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive). The random values are created using the initial seed given in $seed . 
Errors  bounds : the maximum value is out of bounds.negative : the number of values to be returned is negative.

random:gaussian
Signatures  random:gaussian($num as xs:integer) as xs:double* 
Summary  Returns a sequence with $num double values. The random values are Gaussian (i.e. normally) distributed with the mean 0.0. and the derivation 1.0. 
random:seededpermutation
Signatures  random:seededpermutation($seed as xs:integer, $items as item()*) as item()*

Summary  Returns a random permutation of the specified $items . The random order is created using the initial seed given in $seed . 
random:uuid
Signatures  random:uuid() as xs:string

Summary  Creates a random universally unique identifier (UUID), represented as 128bit value. 
Examples 

Errors
Code  Description 

bounds

The specified maximum value is out of bounds. 
negative

The specified number of values to be returned is negative. 
Changelog
 Version 9.0
 Updated: error codes updated; errors now use the module namespace
 Version 8.5
 Added: random:seededpermutation
 Version 8.0
 Updated: random:integer, random:seededinteger raise error for invalid input.
The module was introduced with Version 7.5. It includes some functionality which was previously located in the Math Module.