您的位置:首页 > 编程语言 > Java开发

JAVA获取随机数

2015-02-06 16:07 204 查看
随机数发生器(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]);

                   }

                }

             }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 数据 random