// random numbers
// Originally by Raju Rohde from Spring 2000

public class random {
    public static void main(String[] args) {
	
	/****************************************************************
	 * Math.random() returns a random floating point number between *
	 * 0.0 (inclusive) and 1.0 (exclusive).                         *
	 ****************************************************************
	 * SYNTAX:   double r = Math.random();                          *
	 * NOTATION: r is [0,1) or 0<=r<1                               *
	 ****************************************************************
	 * Need to SCALE and SHIFT into an appropriate range            *
	 * Need CASTing to produce Integer random numbers               *
	 *   scaling:                                                   *
	 *      Math.random()*N;         // [0.0,N)                     *
	 *   shifting:                                                  *
	 *      Math.random()+N;         // [N,N+1)                     *
	 *   casting:                                                   *
	 *      (int) (Math.random()*N); // [0,N-1)                     *
	 ****************************************************************/

	/****************************************************************
	 * EXAMPLES:	                                                *
	 ****************************************************************/

	// (1) Produce a double random number in the range  [1.0,6.0):
	   double rnd1 = Math.random()*5 + 1;

        // (2) Produce an integer random number 0 or 1:
           int rnd2 = (int) (Math.random()*2);

        // (3) Produce an integer random number 1, 2, 3, or 4:
           int rnd = (int) (Math.random()*4) + 1;

    }

}


