随机数的产生

发表于: java/j2ee | 作者: darkmi | 日期: 2008/11/03 08:00
标签: Random, 随机数
字号:

总结了一下java.util.Random类的使用。

import java.util.Random;

class TestRandom {
	
	public static void main(String[] args) {
		
		Random random1 = new Random(100);
		System.out.println(random1.nextInt());
		System.out.println(random1.nextInt());
		System.out.println(random1.nextFloat());
		System.out.println(random1.nextFloat());
		System.out.println(random1.nextBoolean());
		System.out.println(random1.nextBoolean());
		
		Random random2 = new Random(100);
		
		System.out.println(random2.nextInt());
		System.out.println(random2.nextInt());
		System.out.println(random2.nextFloat());
		System.out.println(random2.nextFloat());
		System.out.println(random2.nextBoolean());
		System.out.println(random2.nextBoolean());
		
	}
}

输出结果如下:

-1193959466
-1139614796
0.19497603
0.7158033
true
false
-1193959466
-1139614796
0.19497603
0.7158033
true
false

注释:
1:如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那么它们的返回值完全相同。

2:如果希望将返回的随机数控制在某个范围内(比如0~99),则可以使用模数运算符%

import java.util.Random;

class TestRandom {
	public static void main(String[] args) {
		Random random = new Random();
		for (int i = 0; i < 100; i++) {
			System.out.println(Math.abs(random.nextInt()) % 100);
		}
	}
}

注释: 
1:将模数运算符%作用于随机数产生器所产生的随机数身上,目的是为了让随机数的最大值局限于我们所制定的操作数数值减1范围内。

2:如上面代码就将输入控制在099的范围内,注意:如果不加Math.abs(),输出范围将是-9999。

切换主题切换主题
返回顶部