Difference between revisions of "Random Module"
Jump to navigation
Jump to search
m (Text replacement - "\[\[#([^]:]+:[^|]+)\|([^]:]+:[^|]+)\]\]" to "{{Function||$1}}") |
|||
Line 10: | Line 10: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
|{{Func|random:double||xs:double}}<br /> | |{{Func|random:double||xs:double}}<br /> | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Returns a double value between 0.0 (inclusive) and 1.0 (exclusive).<br /> | |Returns a double value between 0.0 (inclusive) and 1.0 (exclusive).<br /> | ||
Line 21: | Line 21: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
|{{Func|random:integer||xs:integer}}<br />{{Func|random:integer|$max as xs:integer|xs:integer}}<br /> | |{{Func|random:integer||xs:integer}}<br />{{Func|random:integer|$max as xs:integer|xs:integer}}<br /> | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Returns an integer value, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive)<br /> | |Returns an integer value, either in the whole integer range or between 0 (inclusive) and the given maximum (exclusive)<br /> | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|{{Error|bounds|#Errors}} the maximum value is out of bounds. | |{{Error|bounds|#Errors}} the maximum value is out of bounds. | ||
Line 35: | Line 35: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
|{{Func|random:seeded-double|$seed as xs:integer, $num as xs:integer|xs:double*}}<br /> | |{{Func|random:seeded-double|$seed as xs:integer, $num as xs:integer|xs:double*}}<br /> | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Returns a sequence with {{Code|$num}} double values between 0.0 (inclusive) and 1.0 (exclusive). The random values are created using the initial seed given in {{Code|$seed}}.<br /> | |Returns a sequence with {{Code|$num}} double values between 0.0 (inclusive) and 1.0 (exclusive). The random values are created using the initial seed given in {{Code|$seed}}.<br /> | ||
Line 46: | Line 46: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
|{{Func|random:seeded-integer|$seed as xs:integer, $num as xs:integer|xs:integer*}}<br />{{Func|random:seeded-integer|$seed as xs:integer, $num as xs:integer, $max as xs:integer|xs:integer*}} | |{{Func|random:seeded-integer|$seed as xs:integer, $num as xs:integer|xs:integer*}}<br />{{Func|random:seeded-integer|$seed as xs:integer, $num as xs:integer, $max as xs:integer|xs:integer*}} | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Returns a sequence with {{Code|$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 {{Code|$seed}}.<br /> | |Returns a sequence with {{Code|$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 {{Code|$seed}}.<br /> | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
|{{Error|bounds|#Errors}} the maximum value is out of bounds.<br/>{{Error|negative|#Errors}} the number of values to be returned is negative. | |{{Error|bounds|#Errors}} the maximum value is out of bounds.<br/>{{Error|negative|#Errors}} the number of values to be returned is negative. | ||
Line 60: | Line 60: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
|{{Func|random:gaussian|$num as xs:integer|xs:double*}}<br /> | |{{Func|random:gaussian|$num as xs:integer|xs:double*}}<br /> | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Returns a sequence with {{Code|$num}} double values. The random values are Gaussian (i.e. normally) distributed with the mean 0.0. and the derivation 1.0.<br /> | |Returns a sequence with {{Code|$num}} double values. The random values are Gaussian (i.e. normally) distributed with the mean 0.0. and the derivation 1.0.<br /> | ||
Line 71: | Line 71: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
|{{Func|random:seeded-permutation|$seed as xs:integer, $items as item()*|item()*}} | |{{Func|random:seeded-permutation|$seed as xs:integer, $items as item()*|item()*}} | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Returns a random permutation of the specified {{Code|$items}}. The random order is created using the initial seed given in {{Code|$seed}}.<br /> | |Returns a random permutation of the specified {{Code|$items}}. The random order is created using the initial seed given in {{Code|$seed}}.<br /> | ||
Line 82: | Line 82: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
| width='120' | '''Signatures''' | | width='120' | '''Signatures''' | ||
|{{Func|random:uuid||xs:string}} | |{{Func|random:uuid||xs:string}} | ||
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
|Creates a random universally unique identifier (UUID), represented as 128-bit value. | |Creates a random universally unique identifier (UUID), represented as 128-bit value. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
Line 99: | Line 99: | ||
! width="110"|Code | ! width="110"|Code | ||
|Description | |Description | ||
− | |- | + | |- valign="top" |
|{{Code|bounds}} | |{{Code|bounds}} | ||
|The specified maximum value is out of bounds. | |The specified maximum value is out of bounds. | ||
− | |- | + | |- valign="top" |
|{{Code|negative}} | |{{Code|negative}} | ||
|The specified number of values to be returned is negative. | |The specified number of values to be returned is negative. |
Revision as of 14:19, 20 July 2022
This XQuery Module contains functions for computing random values. All functions except for random:seeded-double
and random:seeded-integer
are non-deterministic, i. e., they return different values for each call.
Contents
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:seeded-double
Signatures | random:seeded-double($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:seeded-integer
Signatures | random:seeded-integer($seed as xs:integer, $num as xs:integer) as xs:integer* random:seeded-integer($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:seeded-permutation
Signatures | random:seeded-permutation($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 128-bit 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:seeded-permutation
- Version 8.0
- Updated:
random:integer
,random:seeded-integer
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.