IRIX 6.5 » Books » Developer »
Standard Template Library Programmer's Guide
(document number: 007-3426-004 / published: 1999-05-21)
table of contents | additional info | download
find in page
subtractive_rng
 |
 |
| Category: functors |
Component type: type |
Description
Subtractive_rng is a
Random Number Generator based on the
subtractive method
[1]. It is a
Unary Function: it takes
a single argument
N, an
unsigned int, and returns an
unsigned int that is less than
N. Successive calls to
the same
subtractive_rng object
[2] yield a pseudo-random
sequence.
Example
int main()
{
subtractive_rng R;
for (int i = 0; i < 20; ++i)
cout << R(5) << ' ';
cout << endl;
}
// The output is 3 2 3 2 4 3 1 1 2 2 0 3 4 4 4 4 2 1 0 0
Definition
Defined in the standard header
functional, and in the nonstandard
backward-compatibility header
function.h.
This function object is an SGI extension; it is not part of the C++
standard.
Template parameters
None.
Model of
Random Number Generator,
Adaptable Unary Function
Type requirements
None.
Public base classes
unary_function<unsigned int, unsigned int>
Members
|
Parameter
|
Description
|
Default
|
|
argument_type
|
Adaptable Unary Function
|
The type of a subtractive_rng's argument: unsigned int.
|
|
result_type
|
Adaptable Unary Function
|
The type of the result: unsigned int.
|
|
subtractive_rng(unsigned int seed)
|
subtractive_rng
|
See below.
|
|
subtractive_rng()
|
subtractive_rng
|
See below.
|
|
unsigned int operator()(unsigned int N)
|
Adaptable Unary Function
|
Function call. Returns a pseudo-random number in the range
[0, N).
|
|
void initialize(unsigned int seed)
|
subtractive_rng
|
See below.
|
New members
These members are not defined in the
Adaptable Unary Function
requirements, but are specific to
subtractive_rng.
|
Member
|
Description
|
|
subtractive_rng(unsigned int seed)
|
The constructor. Creates a subtractive_rng whose internal state
is initialized using seed.
|
|
subtractive_rng()
|
The default constructor. Creates a subtractive_rng initialized
using a default value.
|
|
void initialize(unsigned int seed)
|
Re-initializes the internal state of the subtractive_rng, using
the value seed.
|
Notes
[1]
See section 3.6 of Knuth for an implementation of the subtractive
method in FORTRAN. Section 3.2.2 of Knuth analyzes this class of
algorithms.
(D. E. Knuth, The Art of Computer
Programming. Volume 2: Seminumerical Algorithms, second edition.
Addison-Wesley, 1981.)
[2]
Note that the sequence produced by a subtractive_rng is
completely deterministic, and that the sequences produced by two
different subtractive_rng objects are independent of each other.
That is: if R1 is a subtractive_rng, then the values returned when
R1 is called depend only on R1's seed and on the number of times
that R1 has been called. Calls to other subtractive_rng objects
are irrelevant. In implementation terms, this is because the class
subtractive_rng contains no static members.
See also
Random Number Generator
Copyright ©
1999 Silicon Graphics, Inc. All Rights Reserved.
TrademarkInformation
Standard Template Library Programmer's Guide
(document number: 007-3426-004 / published: 1999-05-21)
table of contents | additional info | download
home/search |
what's new |
help