Class RandomSeedable

  • All Implemented Interfaces:
    Cloneable
    Direct Known Subclasses:
    Ranmar

    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.

    Version:
    1.1a
    Author:
    Paul Houle (E-mail: paul@honeylocust.com)
    See Also:
    Ranecu, Ranlux, Ranmar
    • Constructor Detail

      • RandomSeedable

        public RandomSeedable()
    • Method Detail

      • ClockSeed

        public static long ClockSeed​(Date d)
        Return a long integer seed given a date
        Parameters:
        d - a date
        Returns:
        a long integer seed
      • ClockSeed

        public static long ClockSeed()
        Return a long integer seed calculated from the date. Equivalent to ClockSeed(new Date());
        Returns:
        a long integer seed