|
/*
* 创建日期 2007-3-15
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
import java.util.*;
/**
* <p>
* Title: 随机数的产生问题
* </p>
* <p>
* Description: 产生不同类型的随机数
* </p>
* <p>
* Copyright: Copyright (c) 2007
* </p>
* <p>
* Filename:RandomTest.java
* </p>
*
* @author 李彬
* @version 1.0
*/
public class RandomTest {
public Random random = new Random();
/**
* 产生一个任意的随机数
*/
public void randomRan() {
for (int i = 0; i < 3; i++) {
int t = random.nextInt();
System.out.println(t);
}
System.out.println("随即的产生结束!");
}
/**
* 产生一个0到n的随机数
*/
public void randomRange() {
int n = 10;
for (int i = 0; i < 3; i++) {
//int t = random.nextInt(n+1);
int t = (int) Math.floor(n * Math.random()) + 1;
System.out.println(t);
}
System.out.println("由范围的随机数产生结束");
}
/**
* 产生一个bytes型的随即数
*/
public void randomBytes() {
byte[] bytes = new byte[5];
random.nextBytes(bytes);//它返回的是void类型
System.out.println(bytes);
System.out.println("bytes型的随即数产生结束");
}
/**
* 产生其他简单类型的随机数
*/
public void randomSimple() {
for (int i = 0; i < 3; i++) {
boolean b = random.nextBoolean();
long l = random.nextLong();
float f = random.nextFloat();
double d = random.nextDouble();
System.out.println(" b= " + b + " l= " + l + " f= " + f + " d= " + d);
}
System.out.println("简单类型的随即数产生结束");
}
/**
* 产生两个具有相同随即种子的随机数
*/
public void randomSeed() {
long seed = random.nextLong();
random = new Random(seed);
Random rad2 = new Random(seed);
for (int i = 0; i < 3; i++) {
int t1 = random.nextInt();
int t2 = random.nextInt();
System.out.println(" random.nextInt= " + t1 + " rad2.nextInt()= "
+ t2);
}
}
public static void main(String[] args) {
RandomTest rt1 = new RandomTest();
rt1.randomRan();
rt1.randomRange();
rt1.randomBytes();
rt1.randomSimple();
rt1.randomSeed();
}
}
|