All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.cornell.lassp.houle.RngPack.RandomSeedable Maven / Gradle / Ivy

The newest version!
package edu.cornell.lassp.houle.RngPack;

import java.util.*;

//
// RngPack 1.1a by Paul Houle
// http://www.honeylocust.com/~houle/RngPack/ 
//

/**
*
* 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. * * @author Paul Houle (E-mail: [email protected]) * @version 1.1a * * @see Ranecu * @see Ranlux * @see Ranmar */ public abstract class RandomSeedable extends RandomElement { /** * * Return a long integer seed given a date * * @param d a date * @return a long integer seed * */ public static long ClockSeed(Date d) { return d.getTime(); }; /** * * Return a long integer seed calculated from the date. Equivalent to * ClockSeed(new Date()); * * @return a long integer seed * */ public static long ClockSeed() { return ClockSeed(new Date()); }; };





© 2015 - 2024 Weber Informatics LLC | Privacy Policy