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.
Contents
Conventions[edit]
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[edit]
random:double[edit]
Signature  random:double() as xs:double 
Summary  Returns a double value between 0.0 (inclusive) and 1.0 (exclusive). 
random:integer[edit]
Signature  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[edit]
Signature  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[edit]
Signature  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[edit]
Signature  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[edit]
Signature  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[edit]
Signature  random:uuid() as xs:string 
Summary  Creates a random universally unique identifier (UUID), represented as 128bit value. 
Examples 

Errors[edit]
Code  Description 

bounds

The specified maximum value is out of bounds. 
negative

The specified number of values to be returned is negative. 
Changelog[edit]
 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.