java随机数

在Java中我们可以使用Java.util.Random 类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。 随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。 1>生成随机数 Random random = new Random(); Random random = new Random(100);//指定种子数100 random调用不同的方法,获得随机数。 如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。如下面代码中两个Random对象的输出完全相同 import java.util.*; class TestRandom { public static void main(String[] args) { Random random1 = new Random(100); System.out.println(random1.nextInt()); System.out.println(random1.nextFloat()); System.out.println(random1.nextBoolean()); Random random2 = new Random(100); System.out.println(random2.nextInt()); System.out.println(random2.nextFloat()); System.out.println(random2.nextBoolean()); } } 2>指定范围内的随机数 随机数控制在某个范围内,使用模数运算符% import java.util.*; class TestRandom { public static void main(String[] args) { Random random = new Random(); for(int i = 0; i < 10;i++) { System.out.println(Math.abs(random.nextInt())%10); } } } 获得的随机数有正有负的,用Math.abs使获取数据范围为非负数 3>获取指定范围内的不重复随机数 import java.util.*; class TestRandom { public static void main(String[] args) { int[] intRet = new int[6]; int intRd = 0; // 存放随机数 int count = 0; // 记录生成的随机数个数 int flag = 0; // 是否已经生成过标志 while (count < 6) { Random rdm = new Random(System.currentTimeMillis()); intRd = Math.abs(rdm.nextInt()) % 32 + 1; for (int i = 0; i < count; i++) { if (intRet[i] == intRd) { flag = 1; break; } else { flag = 0; } } if (flag == 0) { intRet[count] = intRd; count++; } } for (int t = 0; t < 6; t++) { System.out.println(t + "->" + intRet[t]); } } } 4>随即生成N位数 public class RandomNumber { public static void main(String[] args) { System.out.println("随机生成4位数:"+String.valueOf(Math.round(Math.random()*10000))); System.out.println("随机生成5位数:"+String.valueOf(Math.round(Math.random()*100000))); System.out.println("随机生成6位数:"+String.valueOf(Math.round(Math.random()*1000000))); } }

posted on 2011-09-14 14:56  青紫蓝兔  阅读(321)  评论(0编辑  收藏  举报

导航