# Difference between revisions of "API:RNG::next"

From Spherical

Bruce Pascoe (talk | contribs) (Reorganize page, add sub-headings for organization, add description) |
Bruce Pascoe (talk | contribs) (Improving headings some more) |
||

Line 1: | Line 1: | ||

{{DISPLAYTITLE:RNG::next()}} | {{DISPLAYTITLE:RNG::next()}} | ||

− | The <tt>'''RNG::next()'''</tt> method | + | The <tt>'''RNG::next()'''</tt> method generates a random floating-point number in the range <tt>[0,1)</tt>. |

=== Usage === | === Usage === | ||

Line 12: | Line 12: | ||

=== Description === | === Description === | ||

− | <tt>'''RNG::next()'''</tt> generates a pseudorandom floating-point | + | <tt>'''RNG::next()'''</tt> generates a pseudorandom floating-point number greater than or equal to 0 but less than 1 and returns the value generated. The number generated is entirely determined by the current state of the <tt>RNG</tt> instance before the call (see <tt>[[API:RNG::state|RNG::state]]</tt>). After calling this function, the state is advanced so a different value will be generated next time. Therefore if you save the RNG's state before calling <tt>RNG.next()</tt>, then restore it afterwards and call <tt>RNG.next()</tt> again, the same value will be returned. |

− | === | + | === Parameters === |

− | ==== Shuffle | + | This method has no parameters. |

+ | |||

+ | === Return Value === | ||

+ | |||

+ | A floating-point number in the range <tt>[0,1)</tt>. | ||

+ | |||

+ | == Examples == | ||

+ | |||

+ | === Shuffle an array === | ||

let items = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] | let items = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] | ||

+ | |||

let rnGen = new RNG(); | let rnGen = new RNG(); | ||

for (let i = items.length - 1; i > 0; --i) { | for (let i = items.length - 1; i > 0; --i) { | ||

Line 26: | Line 35: | ||

items[j] = orig_i; | items[j] = orig_i; | ||

} | } | ||

+ | |||

+ | == See Also == | ||

+ | |||

+ | <tt> | ||

+ | * [[API:RNG::state|RNG::state]] | ||

+ | </tt> | ||

[[Category:Sphere 2 API]] | [[Category:Sphere 2 API]] |

## Latest revision as of 03:53, 10 August 2017

The ` RNG::next()` method generates a random floating-point number in the range

`[0,1)`.

### Usage

number=rng_object.next();

## Contents

## API Information

### Description

` RNG::next()` generates a pseudorandom floating-point number greater than or equal to 0 but less than 1 and returns the value generated. The number generated is entirely determined by the current state of the

`RNG`instance before the call (see

`RNG::state`). After calling this function, the state is advanced so a different value will be generated next time. Therefore if you save the RNG's state before calling

`RNG.next()`, then restore it afterwards and call

`RNG.next()`again, the same value will be returned.

### Parameters

This method has no parameters.

### Return Value

A floating-point number in the range `[0,1)`.

## Examples

### Shuffle an array

let items = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] let rnGen = new RNG(); for (let i = items.length - 1; i > 0; --i) { let j = Math.floor(rnGen.next() * (i + 1)); // discrete [0,i] let orig_i = items[i]; items[i] = items[j]; items[j] = orig_i; }

## See Also

`
`

`
`