`

JAVA获取随机数

    博客分类:
  • 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]);
                   }
                }
             }

 

 

Java随机数类Random介绍     

Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以 及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机 数。
类Random中的方法十分简单,它只有两个构造方法和六个普通方法。
构造方法:
(1)public Random()
(2)public Random(long seed)
Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。
普通方法:
(1)public synonronized void setSeed(long seed)
该方法是设定基值seed。
(2)public int nextInt()
该方法是产生一个整型随机数。
(3)public long nextLong()
该方法是产生一个long型随机数。
(4)public float nextFloat()
该方法是产生一个Float型随机数。
(5)public double nextDouble()
该方法是产生一个Double型随机数。
(6)public synchronized double nextGoussian()
该方法是产生一个double型的Goussian随机数。
例2 RandomApp.java。
//import java.lang.*;
import java.util.Random;

public class RandomApp{
public static void main(String args[]){
Random ran1=new Random();
Random ran2=new Random(12345);
//创建了两个类Random的对象。
System.out.println("The 1st set of random numbers:");
System.out.println(" Integer:"+ran1.nextInt());
System.out.println(" Long:"+ran1.nextLong());
System.out.println(" Float:"+ran1.nextFloat());
System.out.println(" Double:"+ran1.nextDouble());
System.out.println(" Gaussian:"+ran1.nextGaussian());
          //产生各种类型的随机数
System.out.print("The 2nd set of random numbers:");
for(int i=0;i<5;i++){
System.out.println(ran2.nextInt()+" ");
if(i==2) System.out.println();
//产生同种类型的不同的随机数。
System.out.println();
}
}
}

 

Random random=new Random();
random.nextInt();

也可以有nextFloat等等,各种基本类型都有

Math.random也可以
比如说你想要0-10之间的随机数
你可以这样写
(int)(Math.random()*10);

JAVA产生指定范围的随机数》

《JAVA产生指定范围的随机数》
   产生机制: 
产生Min-Max之间的数字
   实现原理:
      Math.round(Math.random()*(Max-Min)+Min)

long Temp; //不能设定为int,必须设定为long
//产生1000到9999的随机数
Temp=Math.round(Math.random()*8999+1000);

 

 

from : http://blog.csdn.net/herrapfel/article/details/1885016

http://blog.csdn.net/ming1683/article/details/3195058

分享到:
评论

相关推荐

    Java获取随机数的3种方法

    下面将详细介绍Java获取随机数的三种主要方法。 方法一:使用`Math.random()`函数 这是最基础的生成随机数的方法,`Math.random()`返回的是一个0.0到1.0之间的浮点数,不包括1.0。如果你需要生成指定范围内的整数,...

    Java获取随机数的3种方法和总结

    以下是Java获取随机数的三种主要方法的详细解释: 1. **Math.random()方法** Math.random()是Java中最基础的随机数生成方法,它返回一个0.0到1.0之间的浮点数(不包括1.0),精确到小数点后15位。如果你需要生成一...

    java获取随机数的3种方法和总结.docx

    在Java编程语言中,获取随机数是常见的需求,用于模拟各种随机行为或在游戏中生成随机事件等。以下是三种在Java中生成随机数的方法,以及一些相关的知识点总结: 1. **方法1:使用Math.random()** `Math.random()`...

    java随机数获取

    Math.random:随机数的个,十,百,千,,,位数相加详解

    Java获取随机数的3种方法和总结[归类].pdf

    以下是三种在Java中获取随机数的方法: 1. **基于`Math.random()`的方法**: `Math.random()`函数返回一个0.0到1.0之间的随机浮点数,不包括1.0。若想生成指定范围内的整数随机数,可以使用如下的转换公式: ```...

    java生成16位随机数

    java生成16位随机数

    Java产生随机数的两种方式

    在Java编程语言中,生成随机数是常见的需求,可以用于模拟、测试、加密等多种场景。本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`...

    Java生成32位随机数,8位随机数

    Java生成32位随机数,短位随机数工具类

    java根据比例概率生成随机数

    Java 根据比例概率生成随机数 概率随机数是指根据事先设定的概率分布生成随机数的方法。在 Java 中,可以使用 Math.random() 方法生成随机数,然后根据概率分布判断返回的数字。 在给定的代码中,作者定义了一个 ...

    java 随机数的资源

    通过实例化`Random`类,我们可以获取到一个随机数生成器,然后调用其方法来生成不同类型的随机数。例如,创建一个`Random`对象的基本语法如下: ```java Random random = new Random(); ``` 生成整数随机数的方法...

    Java如何获取一个随机数 Java猜数字小游戏

    Java获取随机数与猜数字小游戏 Java是最流行的编程语言之一,它广泛应用于各种领域,如 Android 开发、Web 开发、企业软件开发等。 在 Java 编程中,获取随机数是一个非常重要的功能,例如在猜数字小游戏中,我们...

    java 求最大的随机数

    如果图片中包含有关如何生成或查找最大随机数的示例,建议查看图片以获取更多信息。 总之,Java的`Random`类提供了生成随机数的能力,通过`nextInt()`和`nextDouble()`方法可以生成不同类型的随机数。寻找最大...

    获取随机数3中方法

    以下是根据标题、描述和标签所提及的三种获取随机数的方法的详细说明: **方法1:基于`Math.random()`** `Math.random()` 是 `java.lang.Math` 类中的一个静态方法,它返回一个在 [0.0, 1.0) 范围内的双精度浮点数...

    Java获取计算机信息和产生随机数

    主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了

    java随机数4-36位

    在Java编程语言中,生成随机数是一项常见的任务,特别是在创建安全的验证码系统或者构建订单编号时。本篇文章将深入探讨如何在Java中生成指定范围内的随机数,包括4位到36位的数字,以及结合时间戳来创建更复杂的30...

    java产生随机数的两个方法.doc

    虽然默认情况下,其产生的随机数范围比较小,但可以通过一些灵活的处理来获取任意范围的随机数。 例如,要生成一个0到10之间的随机整数,可以使用以下代码: ``` (int)(Math.random()*10) ``` 这将生成一个0到9之间...

    【转】利用系统时间可预测破解java随机数

    标题中的“利用系统时间可预测破解java随机数”揭示了一个重要的信息安全问题,即Java的随机数生成器在某些情况下可能不那么随机,可以被有心人利用系统时间预测。这通常发生在程序依赖于系统时间来生成随机数序列时...

    java获取随机的两位数字(可改为多位)

    java获取随机的两位数字(可改为多位),可用于订单号后补数字等

    java从数组获取多个随机数

    从数组获取多个随机数

    Java 反射随机数的输出+程序.zip

    在这个“Java 反射随机数的输出”工程练习中,我们将探讨如何结合反射机制来操作Java的`java.util.Random`类,以实现不同场景下的随机数生成。 首先,`Random`类是Java标准库中的一个核心类,用于生成各种类型的...

Global site tag (gtag.js) - Google Analytics