public abstract class RandomSeedable extends RandomElement
RandomSeedable
is an abstract class that extends the
RandomElement
class to include the ability to
automatically generate a valid long
seed from the clock.
Thus it provides a consistent interface for seeding interchangable
generators. It is reccomended that a RandomSeedable
have
a constructor that takes a long
for a seed. For example,
if you write a generator called ReallyRandom
, you want
to be able to do
long seed=ReallyRandom.ClockSeed(); RandomSeedable e=new ReallyRandom(seed);this makes it convenient to keep a copy of the seed in case you want to restart the generator with the same seed some time in the future.
If one is going to use a long to generate a smaller seed by taking
Clockseed()
modulus another number, we reccomend that
you use a prime number; this ensures that the generator would have
the maximum "period" if it were started at regular issues, for
instance, by a batch job. See Ranmar
for an
example.
Source code is available.
Ranecu
,
Ranlux
,
Ranmar
BMoutput
Constructor and Description |
---|
RandomSeedable() |
Modifier and Type | Method and Description |
---|---|
static long |
ClockSeed()
Return a long integer seed calculated from the date.
|
static long |
ClockSeed(java.util.Date d)
Return a long integer seed given a date
|
public static long ClockSeed(java.util.Date d)
d
- a datepublic static long ClockSeed()
ClockSeed(new Date());