Randomizer : Random : Development Class : Java examples (example source code) Organized by topic

Java
C++
PHP


Java  »  Development Class   » [  Random  ]  Screenshots 
 



Randomizer

/*
 * Copyright (c) 2000 David Flanagan.  All rights reserved.
 * This code is from the book Java Examples in a Nutshell, 2nd Edition.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose.
 * You may distribute it non-commercially as long as you retain this notice.
 * For a commercial use license, or to purchase the book (recommended),
 * visit http://www.davidflanagan.com/javaexamples2.
 */

/**
 * This class defines methods for computing pseudo-random numbers, and defines
 * the state variable that needs to be maintained for use by those methods.
 */
public class Randomizer {
  // Carefully chosen constants from the book "Numerical Recipes in C".
  // All "static final" fields are constants.
  static final int m = 233280;

  static final int a = 9301;

  static final int c = 49297;

  // The state variable maintained by each Randomizer instance
  int seed = 1;

  /**
   * The constructor for the Randomizer() class. It must be passed some
   * arbitrary initial value or "seed" for its pseudo-randomness.
   */
  public Randomizer(int seed) {
    this.seed = seed;
  }

  /**
   * This method computes a pseudo-random number between 0 and 1 using a very
   * simple algorithm. Math.random() and java.util.Random are actually a lot
   * better at computing randomness.
   */
  public float randomFloat() {
    seed = (seed * a + c% m;
    return (floatMath.abs((floatseed / (floatm);
  }

  /**
   * This method computes a pseudo-random integer between 0 and specified
   * maximum. It uses randomFloat() above.
   */
  public int randomInt(int max) {
    return Math.round(max * randomFloat());
  }

  /**
   * This nested class is a simple test program: it prints 10 random ints.
   * Note how the Randomizer object is seeded using the current time.
   */
  public static void main(String[] args) {
      Randomizer r = new Randomizer((intnew java.util.Date().getTime());
      for (int i = 0; i < 10; i++)
        System.out.println(r.randomInt(100));

  }
}
           
       
Related examples in the same category
1.  Does Math.random() produce 0.0 and 1.0
2.  nextDouble() and nextGaussian() in java.util.Random
3.  Generating random numbers
























Home| Contact Us
Copyright 2003 - 04 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.