Difference between revisions of "Random Module"
Jump to navigation
Jump to search
m (Text replacement - "<br />" to "<br/>") |
|||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | This [[Module Library|XQuery Module]] contains functions for computing random values. All functions except for {{Function||random:seeded-double}} and {{Function||random:seeded-integer}} are | + | This [[Module Library|XQuery Module]] contains functions for computing random values. All functions except for {{Function||random:seeded-double}} and {{Function||random:seeded-integer}} are nondeterministic, i. e., they return different values for each call. |
=Conventions= | =Conventions= | ||
| Line 11: | Line 11: | ||
{| width='100%' | {| width='100%' | ||
|- valign="top" | |- valign="top" | ||
| − | | width='120' | ''' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>random:double() as xs:double</pre> |
|- valign="top" | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| Line 22: | Line 22: | ||
{| width='100%' | {| width='100%' | ||
|- valign="top" | |- valign="top" | ||
| − | | width='120' | ''' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>random:integer( |
| + | $max as xs:integer := () | ||
| + | ) as xs:integer</pre> | ||
|- valign="top" | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| Line 36: | Line 38: | ||
{| width='100%' | {| width='100%' | ||
|- valign="top" | |- valign="top" | ||
| − | | width='120' | ''' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>random:seeded-double( |
| + | $seed as xs:integer, | ||
| + | $num as xs:integer | ||
| + | ) as xs:double*</pre> | ||
|- valign="top" | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| Line 47: | Line 52: | ||
{| width='100%' | {| width='100%' | ||
|- valign="top" | |- valign="top" | ||
| − | | width='120' | ''' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>random:seeded-integer( |
| + | $seed as xs:integer, | ||
| + | $num as xs:integer, | ||
| + | $max as xs:integer := () | ||
| + | ) as xs:integer*</pre> | ||
|- valign="top" | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| Line 61: | Line 70: | ||
{| width='100%' | {| width='100%' | ||
|- valign="top" | |- valign="top" | ||
| − | | width='120' | ''' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>random:gaussian( |
| + | $num as xs:integer | ||
| + | ) as xs:double*</pre> | ||
|- valign="top" | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| Line 72: | Line 83: | ||
{| width='100%' | {| width='100%' | ||
|- valign="top" | |- valign="top" | ||
| − | | width='120' | ''' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>random:seeded-permutation( |
| + | $seed as xs:integer, | ||
| + | $items as item()* | ||
| + | ) as item()*</pre> | ||
|- valign="top" | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| Line 83: | Line 97: | ||
{| width='100%' | {| width='100%' | ||
|- valign="top" | |- valign="top" | ||
| − | | width='120' | ''' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>random:uuid() as xs:string</pre> |
|- valign="top" | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
Latest revision as of 14:53, 31 October 2023
This XQuery Module contains functions for computing random values. All functions except for random:seeded-double and random:seeded-integer 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:seeded-double[edit]
| Signature | 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[edit]
| Signature | 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[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:seeded-permutation[edit]
| Signature | 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[edit]
| Signature | random:uuid() as xs:string |
| Summary | Creates a random universally unique identifier (UUID), represented as 128-bit 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:seeded-permutation
- Version 8.0
- Updated:
random:integer,random:seeded-integerraise error for invalid input.
The module was introduced with Version 7.5. It includes some functionality which was previously located in the Math Module.