// Random number generator // // Author Matthew Caryl // Created 24.11.96 // // Although under copywrite to the author (Matthew Caryl) this code can be copied and modified for non-commercial // purposes as long as any derivatives contain this condition. package ADT; import java.util.Date; final public class Random { private long seed; public Random() { Date date = new Date(); seed = date.getTime(); } public Random(long s) { seed = s; } public Random(Random r) { seed = r.seed; } public long seed() { return seed; } public boolean flip() { random(); return (seed & 1) == 0; } public int range(int range) { int number; random(); number = (int) ((seed / 65535) % range); return number < 0 ? -number : number; } public long range(long range) { long number; random(); number = (int) ((seed / 65535) % range); return number < 0 ? -number : number; } void random() { seed = seed * 1103515245 + 12345; } }