Class StepSequence

java.lang.Object
io.github.olyutorskii.aletojio.rng.dull.StepSequence
All Implemented Interfaces:
RndInt32

public class StepSequence extends Object implements RndInt32
Step progression sequence generator.

X(n) = start + step * n

If a suitable step is selected, it can be compromised as a quasi-random number generator.

Using large prime numbers other than 2 for step would give a long period.

Integer.MAX_VALUE is followed by Integer.MIN_VALUE.

See Also:
  • Field Details

  • Constructor Details

    • StepSequence

      public StepSequence(int start, int step)
      Constructor.

      output sequence will be {start, start+step, start+step*2, start+step*3, ...}

      Overflow is ignored.

      Parameters:
      start - start value
      step - step value
  • Method Details

    • createCounter

      public static StepSequence createCounter()
      Create simple counter.

      {0, 1, 2, ...}

      Returns:
      counter
    • createQuasiRandom

      public static StepSequence createQuasiRandom()
      Create Quasi-random generator.

      Quasi-random generator outputs extremely uniform random numbers.

      Returns:
      random generator
      See Also:
    • nextInt32

      public int nextInt32()
      Return next random number as 32bit int with random sign-bit.
      Specified by:
      nextInt32 in interface RndInt32
      Returns:
      random number